Tellurian.Geospatial 1.1.1

Prefix Reserved
Suggested Alternatives

Tellurian.Geospatial 2.3.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Tellurian.Geospatial --version 1.1.1                
NuGet\Install-Package Tellurian.Geospatial -Version 1.1.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tellurian.Geospatial" Version="1.1.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Tellurian.Geospatial --version 1.1.1                
#r "nuget: Tellurian.Geospatial, 1.1.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Tellurian.Geospatial as a Cake Addin
#addin nuget:?package=Tellurian.Geospatial&version=1.1.1

// Install Tellurian.Geospatial as a Cake Tool
#tool nuget:?package=Tellurian.Geospatial&version=1.1.1                

Tellurian.Geospatial

Strongly typed object model for geospatial calculations and transformations.
Released under MIT license 2019.

Namespace Tellurian.Geospatial

Types for basic calculations of dictances etc. and building blocks for more advanced spatial algorithms.

  • Angle represening 0 ⇐ degrees < 360 and radians 0 ⇐ radians < 2Π.
  • Distance reprenting zero or positive distances in meters and kilometers.
  • Position with Latitude and Longitude representing a two dimensional location on earth surface. The user must decide on which datum a position is expressed, for exampe WGS 84, ETRS 89 or similar.
  • Speed representing a zero or positive speed in m/s and km/h.
  • Stretch between two Positions representing propertes for stretches on earth surface, ie. distance, direction, on track distance etc.

Each of these objects has value safe initializers and useful methods for calculating distances, angles etc. They are also serializable with the DataContractSerializer.

Namespace Tellurian.Geospatial.Transform

Types and methods for transforming between cartesian and planar coordinates.

  • EarthEllipsoid represents the form of the earth. There are a few preconfigured earth ellipsiods: Grs80 and Wgs84. You can easy create other.
  • MapProjection represents how coordinates are mapped to the earth. There are a few preconfigured: Utm32-35, and specific for Sweden: Sweref99TM and Rt90.
  • GridCoordinate represents a planar coordinate.
  • GaussKrügerTransformer uses the objects above to transform between cartesian and planar coordinates.

Namespace Tellurian.Geospatial.DistanceCalculators

The method for calculating distances between Positions is pluggable because applications have different requirements regarding precision and speed of calculation. The following DistanceCalculator is included:

  • HaversineDistanceCalculator is a fast calculation that is suitable for distances down to decimeters, suitable for tracking of movable objects. This is also the default DistanceCalculator.

References

This implementation uses part of Latitude/longitude spherical geodesy tools
MIT Licence (c) Chris Veness 2002-2019
https://www.movable-type.co.uk/scripts/latlong.html
https://www.movable-type.co.uk/scripts/geodesy/docs/module-latlon-spherical.html

Implementation of the GaussKrügerTransformer is based on formulas from Swedish Land Survey (Lantmäteriet)
https://www.lantmateriet.se/sv/Kartor-och-geografisk-information/GPS-och-geodetisk-matning/Om-geodesi/Formelsamling/

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

1.1.1: Added + operators for Distance and Speed. Updated nuspec.
1.1.0: Refactored all objects are now structs and most parameters are by reference.
1.0.0: First production version.