• MARS Website
  • Core API
  • SmartOpenHamburg API
  • Model Components API
  • Common API
Show / Hide Table of Contents
  • Mars.Common
    • GeoHash
    • GeoHashDecoder
    • GeohashDecodeResult
    • GeoHashEncoder
    • GeoHashPrecision
    • Hyperrectangle
    • InputHashHelper
    • PositionHelper
  • Mars.Common.Collections
    • BinaryArrayHeap<T>
    • DoubleBits
    • FibonacciHeap<T, TKey>
    • FibonacciHeapDoubleKey<T>
    • FibonacciHeapNode<T, TKey>
    • FibonacciHeapNodeDoubleKey<T>
    • HeapNode
    • IntervalSize
    • K2DTree<T>
    • K2dTreeNode<T>
    • KdTree
    • KdTree<T>
    • KdTreeBase<TNode>
    • KdTreeNode
    • KdTreeNode<T>
    • KdTreeNodeBase<TNode>
    • KdTreeNodeCollection<TNode>
    • KdTreeNodeList<T>
    • Key
    • Node<T>
    • NodeBase<T>
    • NodeDataContainer<T>
    • NodeDistance<TNode>
    • QuadTree<T>
    • Root<T>
    • TreeDataContainer<T>
  • Mars.Common.Collections.CritBit
    • ICritBitTree<TValue>
  • Mars.Common.Collections.Graph
    • EdgeData
    • GraphData
    • GraphSerializer
    • ISpatialGraph
    • KeyContainer
    • NodeData
    • SpatialGraph
    • SpatialGraphHelper
  • Mars.Common.Collections.Graph.Algorithms
    • AStar
    • CompressedPathDatabase
    • ContractionSearch
    • DepthLimitedTraversal
  • Mars.Common.Collections.Graph.Helper
    • INodeFinder
    • KdTreeNodeFinder
    • RunLengthEncoder
  • Mars.Common.Collections.KNNGraph
    • DefaultRandomGenerator
    • DistanceUtils
    • EventSources
    • EventSources.GraphBuildEventSource
    • EventSources.GraphSearchEventSource
    • IProgressReporter
    • IProvideRandomValues
    • KnnGraph<TItem, TDistance>
    • KnnGraph<TItem, TDistance>.KnnSearchResult
    • KnnGraph<TItem, TDistance>.Parameters
    • Node
    • ReverseComparer<T>
    • ReverseComparerExtensions
    • SelectionKind
    • TravelingCosts<TItem, TDistance>
  • Mars.Common.Compat
    • FormatDecoderAttribute
    • FormatEncoderAttribute
    • FormatHandlerAttribute
    • IntegerAttribute
    • NegativeIntegerAttribute
    • NonnegativeIntegerAttribute
    • NonpositiveIntegerAttribute
    • PositiveIntegerAttribute
  • Mars.Common.Data
    • DomainDataImporter
  • Mars.Common.Data.Providers
    • AscDataProvider
    • GeoJsonFeatureCollectionConverter
    • GeoJsonFeatureConverter
    • GeoJsonHelper
    • GeometryDataProvider
    • GraphMlProvider
    • HttpDataProvider
    • IDataProvider<TInput>
    • JsonFileDataProvider
    • JsonTextDataProvider
    • XmlFileDataProvider
    • XmlTextDataProvider
  • Mars.Common.Exceptions
    • DimensionMismatchException
    • ParseException
  • Mars.Common.IO
    • ExtensionMethods
    • FileClientUtils
    • FileKeys
    • HttpClientUtils
    • ObjectSerialize
    • Serializer
    • SerializerCompression
    • SparseFormat
    • SparseReader
    • SparseWriter
  • Mars.Common.IO.Attributes
    • SerializationBinderAttribute
    • SurrogateSelectorAttribute
  • Mars.Common.IO.Console
    • ChildProgressBar
    • IProgressBar
    • ProgressBar
    • ProgressBarBase
    • ProgressBarHeight
    • ProgressBarOptions
    • ProgressBarSimple
  • Mars.Common.IO.Csv
    • CsvAnalyzer
    • CsvReader
    • CsvReader.RecordEnumerator
    • CsvWriter
    • MissingFieldAction
    • ParseErrorAction
    • ValueTrimmingOptions
  • Mars.Common.IO.Events
    • ParseErrorEventArgs
  • Mars.Common.IO.Exceptions
    • MalformedCsvException
    • MissingFieldCsvException
  • Mars.Common.IO.Mapped
    • Context
    • DefaultArrayFactory
    • Extensions
    • IArrayFactory
    • ISerializableToStream
    • MappedAccessor<T>
    • MemoryMap
    • MemoryMap.CreateAccessorFunc<T>
    • MemoryMap.ReadFromDelegate<T>
    • MemoryMap.WriteToDelegate<T>
    • MemoryMapDelegates
    • MemoryMapDelegates.CreateAccessorFunc<T>
    • MemoryMapStream
  • Mars.Common.IO.Mapped.Accessors
    • MappedAccessorByte
    • MappedAccessorDouble
    • MappedAccessorInt16
    • MappedAccessorInt32
    • MappedAccessorInt64
    • MappedAccessorSingle
    • MappedAccessorUInt16
    • MappedAccessorUInt32
    • MappedAccessorUInt64
    • MappedAccessorVariable<T>
  • Mars.Common.IO.Mapped.Arrays
    • Array<T>
    • ArrayBase<T>
    • ArrayProfile
    • MappedArray<TMapped, T>
    • MappedArray<TMapped, T>.MapFrom
    • MappedArray<TMapped, T>.MapTo
    • MemoryArray<T>
    • VariableArray<T>
  • Mars.Common.IO.Mapped.Collections
    • MemoryBackedDictionary<TKey, TValue>
    • MemoryBackedList<T>
  • Mars.Common.IO.Mapped.Indexes
    • Index<T>
  • Mars.Common.IO.Mapped.Streams
    • CappedStream
  • Mars.Common.Socket
    • ByteOrder
    • CloseEventArgs
    • CloseStatusCode
    • CompressionMethod
    • ErrorEventArgs
    • Ext
    • MessageEventArgs
    • WebSocket
    • WebSocketException
    • WebSocketState
  • Mars.Common.Socket.Server
    • IWebSocketSession
    • WebHeaderCollection
    • WebSocketBehavior
    • WebSocketContext
    • WebSocketServer
    • WebSocketServiceHost
    • WebSocketServiceManager
    • WebSocketSessionManager
  • Mars.Numerics
    • Classes
    • Combinatorics
    • Constants
    • Distance
    • Elementwise
    • Jagged
    • MathematicsException
    • MathHelper
    • Matrix
    • MatrixOrder
    • MatrixType
    • Norm
    • Sort
    • Sorting
    • Sparse
    • Sparse<T>
    • Tools
    • Vector
    • VectorHelper
    • VectorType
  • Mars.Numerics.Comparers
    • ArrayComparer<T>
    • ComparerDirection
    • CustomComparer<T>
    • ElementComparer
    • ElementComparer<T>
    • GeneralComparer
    • StableComparer<T>
  • Mars.Numerics.Distances
    • Angular
    • Chebyshev
    • Cosine
    • Dirac<T>
    • Euclidean
    • Hamming
    • Hamming<T>
    • Haversine
    • Jaccard
    • Jaccard<T>
    • Kulczynski
    • Levenshtein
    • Levenshtein<T>
    • Manhattan
    • Matching
    • Minkowski
    • SquareEuclidean
    • Vincenty
    • Vincenty.Ellipsoid
  • Mars.Numerics.Distances.Base
    • IDistance<T>
    • IDistance<TFirst, TSecond>
    • IMetric<T>
    • ISimilarity<T, TU>
    • ISimilarity<T>
  • Mars.Numerics.Exceptions
    • DimensionMismatchException
    • NonPositiveDefiniteMatrixException
    • SingularMatrixException
  • Mars.Numerics.Formats
    • DefaultMatrixFormatProvider
    • IMatrixFormatProvider
    • MatrixFormatProviderBase
    • MatrixFormatter
    • OctaveMatrixFormatProvider
  • Mars.Numerics.Ranges
    • ByteRange
    • DoubleRange
    • FloatRange
    • IntRange
    • IRange<T>
  • Mars.Numerics.Statistics
    • ConstValueDistribution<T>
    • Distribution<T>
    • FastGaussianDistributionD
    • FastGaussianDistributionF
    • IDistribution
    • UniformDiscreteDistribution
    • UniformDistributionD
    • UniformDistributionF
  • Mars.Numerics.Statistics.Base
    • BinarySearch
    • DistributionBase
    • ISampleableDistribution<TObservations>
    • IUnivariateDistribution
    • IUnivariateDistribution<TObservation>
    • UnivariateDiscreteDistribution

Class PositionHelper

Provides helper methods for various position and coordinate tasks.
Inheritance
System.Object
PositionHelper
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Mars.Common
Assembly: Mars.Common.dll
Syntax
public static class PositionHelper
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.

Methods

| Improve this Doc View Source

CalculateBearingCartesian(Double, Double, Double, Double)

Provides helper methods for various position and coordinate tasks.
Declaration
public static double CalculateBearingCartesian(double x1, double y1, double x2, double y2)
Parameters
Type Name Description
System.Double x1
System.Double y1
System.Double x2
System.Double y2
Returns
Type Description
System.Double
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CalculateDerivedPosition(Position, Double, Double)

Calculates the end-point from a given source at a given range (meters) and bearing (degrees). This methods uses simple geometry equations to calculate the end-point.
Declaration
public static Position CalculateDerivedPosition(Position source, double range, double bearing)
Parameters
Type Name Description
Position source Point of origin
System.Double range Range in meters
System.Double bearing Bearing in degrees
Returns
Type Description
Position End-point from the source given the desired range and bearing.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CalculateDerivedPosition(Double, Double, Double, Double)

Calculates the end-point from a given source at a given range (meters) and bearing (degrees). This methods uses simple geometry equations to calculate the end-point.
Declaration
public static Position CalculateDerivedPosition(double longitude, double latitude, double range, double bearing)
Parameters
Type Name Description
System.Double longitude The longitude/x component of the source coordinate.
System.Double latitude The longitude/x component of the source coordinate.
System.Double range Range in meters
System.Double bearing Bearing in degrees
Returns
Type Description
Position End-point from the source given the desired range and bearing.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CalculateDiscretePosition(Double, Double, Double, Double, Double)

Calculates a new discrete grid-position on the line between a source and target.
Declaration
public static Position CalculateDiscretePosition(double x1, double y1, double x2, double y2, double stepDistance)
Parameters
Type Name Description
System.Double x1 The X component of the source location.
System.Double y1 The Y component of the source location.
System.Double x2 The X component of the target location.
System.Double y2 The Y component of the target location.
System.Double stepDistance The travelling distance to pass.
Returns
Type Description
Position Returns a new discrete grid-position which lies on the line with the slope of the source and the target location
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CalculateDiscretePositionByBearing(Double, Double, Double, Double)

Calculates a new discrete position based on an outgoing source location given by x and y coordinate, a bearing specifying the direction and the distance to pass.
Declaration
public static Position CalculateDiscretePositionByBearing(double x, double y, double bearing, double stepDistance)
Parameters
Type Name Description
System.Double x The x coordinate of the source.
System.Double y The y coordinate of the source.
System.Double bearing The angle in degrees within the value range [0-360].
System.Double stepDistance The travelling distance to pass.
Returns
Type Description
Position Returns a new Position reached by the distance towards a direction.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
Exceptions
Type Condition
System.ArgumentException The bearing is outside the degree value range [0-360].
| Improve this Doc View Source

CalculateIntersectionPoint(Double, Double, Double, Double, Double, Double, Double, Double)

Provides helper methods for various position and coordinate tasks.
Declaration
public static Position CalculateIntersectionPoint(double p0X, double p0Y, double p1X, double p1Y, double p2X, double p2Y, double p3X, double p3Y)
Parameters
Type Name Description
System.Double p0X
System.Double p0Y
System.Double p1X
System.Double p1Y
System.Double p2X
System.Double p2Y
System.Double p3X
System.Double p3Y
Returns
Type Description
Position
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CalculateMovementVector(Position, Double, Double, Double)

Calculate a movement vector based on current position, headings and distance.
Declaration
public static Position CalculateMovementVector(this Position pos, double distance, double yaw, double pitch = 0)
Parameters
Type Name Description
Position pos Current position.
System.Double distance Traveling distance.
System.Double yaw Heading of the agent.
System.Double pitch Climb angle.
Returns
Type Description
Position The movement vector [x,y].
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CalculateMovementVector(Double[], Double, Double, Double)

Calculate a cartesian movement vector based on current position, headings and distance. For geospatial movement vector use CalculateDerivedPosition(Double, Double, Double, Double)
Declaration
public static double[] CalculateMovementVector(double[] pos, double distance, double yaw, double pitch = 0)
Parameters
Type Name Description
System.Double[] pos Current position.
System.Double distance Traveling distance.
System.Double yaw Heading of the agent.
System.Double pitch Climb angle.
Returns
Type Description
System.Double[] The movement vector [x,y].
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CalculatePosition(Double, Double, Double, Double, Double)

Calculates a new continuous position on the line between a source and target.
Declaration
public static Position CalculatePosition(double x1, double y1, double x2, double y2, double stepDistance)
Parameters
Type Name Description
System.Double x1 The X component of the source location.
System.Double y1 The Y component of the source location.
System.Double x2 The X component of the target location.
System.Double y2 The Y component of the target location.
System.Double stepDistance The travelling distance to pass.
Returns
Type Description
Position Returns a new discrete grid-position which lies on the line with the slope of the source and the target location
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CalculatePositionByBearing(Double, Double, Double, Double)

Calculates a new continuous position based on an outgoing source location given by x and y coordinate, a bearing specifying the direction and the distance to pass.
Declaration
public static Position CalculatePositionByBearing(double x, double y, double bearing, double stepDistance)
Parameters
Type Name Description
System.Double x The x coordinate of the source.
System.Double y The y coordinate of the source.
System.Double bearing The angle in degrees within the value range [0-360].
System.Double stepDistance The travelling distance to pass.
Returns
Type Description
Position Returns a new Position reached by the distance towards a direction.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
Exceptions
Type Condition
System.ArgumentException The bearing is outside the degree value range [0-360].
| Improve this Doc View Source

CalculateRelativePosition(Position, Double, Double)

Calculates the relative position from a source towards a bearing with distance to pass.
Declaration
public static Position CalculateRelativePosition(this Position source, double bearing, double distance)
Parameters
Type Name Description
Position source The source position
System.Double bearing The bearing ranging withing 0 to 360
System.Double distance The distance as a unitless ways
Returns
Type Description
Position
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CalculateRelativePosition(Double, Double, Double, Double, out Double)

Provides helper methods for various position and coordinate tasks.
Declaration
public static double CalculateRelativePosition(double originLongitude, double originLatitude, double bearing, double distance, out double y)
Parameters
Type Name Description
System.Double originLongitude
System.Double originLatitude
System.Double bearing
System.Double distance
System.Double y
Returns
Type Description
System.Double
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CalculateTargetByBearingAndDistance(Double, Double, Double, Double, out Double)

Calculates a new continuous position based on an outgoing source location given by x and y coordinate, a bearing specifying the direction and the distance to pass.
Declaration
public static double CalculateTargetByBearingAndDistance(double sourceX, double sourceY, double bearing, double distance, out double targetY)
Parameters
Type Name Description
System.Double sourceX The x coordinate of the source.
System.Double sourceY The y coordinate of the source.
System.Double bearing The angle in degrees within the value range [0-360].
System.Double distance The travelling distance to pass.
System.Double targetY The output y-coordinate of the target.
Returns
Type Description
System.Double Returns the x-coordinate of the target.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CalculateTargetCoordinate(Double, Double, Double, Double, out Double)

Calculates the target point from a given source point, bearing an distance.
Declaration
public static double CalculateTargetCoordinate(double sourceX, double sourceY, double distance, double bearing, out double targetX)
Parameters
Type Name Description
System.Double sourceX X-coordinate of the source.
System.Double sourceY Y-coordinate of the source.
System.Double distance distance between target and source.
System.Double bearing Bearing towards target.
System.Double targetX Output x-coordinate of the target.
Returns
Type Description
System.Double Returns the y-coordinate of the target and the x-coordinate as output-parameter.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

CoordinateEnumerable(Geometry)

This method iterates over a NetTopologySuite.Geometries.CoordinateSequence and returns each containing coordinate of a given geometry.
Declaration
public static IEnumerable<Coordinate> CoordinateEnumerable(this Geometry geometry)
Parameters
Type Name Description
NetTopologySuite.Geometries.Geometry geometry The single/multi geometry or geometry collection.
Returns
Type Description
System.Collections.Generic.IEnumerable<NetTopologySuite.Geometries.Coordinate> Returns an iterator on the given geometry returning each containing NetTopologySuite.Geometries.Coordinate
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

DegreesToRadians2(Double)

Provides helper methods for various position and coordinate tasks.
Declaration
public static double DegreesToRadians2(double angle)
Parameters
Type Name Description
System.Double angle
Returns
Type Description
System.Double
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

GetBearing(Position, in Position)

Calculates the bearing, in degrees between two geospatial-Positions
Declaration
public static double GetBearing(this Position pt1, in Position pt2)
Parameters
Type Name Description
Position pt1 A Position object representing the origin location
Position pt2 A Position object representing the destination location
Returns
Type Description
System.Double A System.Double value indicating the bearing from the origin to the destination
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

GetBearing(Double, Double, Double, Double)

Calculates the bearing, in degrees between two (geographic) points
Declaration
public static double GetBearing(double x1, double y1, double x2, double y2)
Parameters
Type Name Description
System.Double x1 The x or longitude of the origin location in decimal notation in degree
System.Double y1 The y or latitude of the origin location in decimal notation in degree
System.Double x2 The x or longitude of the destination location in decimal notation in degree
System.Double y2 The y or latitude of the destination location in decimal notation in degree
Returns
Type Description
System.Double A System.Double value indicating the bearing from the origin to the destination
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

GetBearingCartesian(Position, in Position)

Calculates the cartesian bearing, in degrees between two cartesian Positions
Declaration
public static double GetBearingCartesian(this Position pt1, in Position pt2)
Parameters
Type Name Description
Position pt1 A Position object representing the origin location
Position pt2 A Position object representing the destination location
Returns
Type Description
System.Double A System.Double value indicating the bearing from the origin to the destination
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

GetDirection(Double)

Maps the

bearing

to the respective direction type DirectionType
Declaration
public static DirectionType GetDirection(double bearing)
Parameters
Type Name Description
System.Double bearing The direction in range of 0-360
Returns
Type Description
DirectionType Returns a concrete direction abstracting from the bearing
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
Exceptions
Type Condition
System.ArgumentException The direction is outside the range.
| Improve this Doc View Source

GetDirectionType(Double, Double)

Maps the bearing change to one of the fixed directions described in DirectionType.
Declaration
public static DirectionType GetDirectionType(double incomingBearing, double outgoingBearing)
Parameters
Type Name Description
System.Double incomingBearing The bearing before, in value range 0-360.
System.Double outgoingBearing The bearing after the change, in value range 0-360.
Returns
Type Description
DirectionType Returns one of the eight directions
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
Exceptions
Type Condition
System.ArgumentOutOfRangeException The value is outside the value range 0-360.
| Improve this Doc View Source

GetDistanceFromLatLonInKm(Double, Double, Double, Double)

Provides helper methods for various position and coordinate tasks.
Declaration
public static double GetDistanceFromLatLonInKm(double lat1, double lon1, double lat2, double lon2)
Parameters
Type Name Description
System.Double lat1
System.Double lon1
System.Double lat2
System.Double lon2
Returns
Type Description
System.Double
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

GetDistanceFromLatLonInM(Double, Double, Double, Double)

Calculates the distance in meters between to geospatial coordinate with latitude and longitude input.
Declaration
public static double GetDistanceFromLatLonInM(double lat1, double lon1, double lat2, double lon2)
Parameters
Type Name Description
System.Double lat1 The latitude component of the first position.
System.Double lon1 The longitude component of the first position.
System.Double lat2 The latitude component of the second position.
System.Double lon2 The longitude component of the second position.
Returns
Type Description
System.Double Returns the distance of these two points in meters.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

GetRelativePosition(Position, Double, Double)

Calculates the end-point from a given source at a given range (meters) and bearing (degrees). This methods uses simple geometry equations to calculate the end-point.
Declaration
public static Position GetRelativePosition(this Position sourceGpsCoordinate, double bearing, double distance)
Parameters
Type Name Description
Position sourceGpsCoordinate A Position object representing the origin location
System.Double bearing A System.Double value indicating the bearing from the origin to the destination
System.Double distance A System.Double value representing the distance in miles from the origin to the destination coordinate
Returns
Type Description
Position A Position value representing the new coordinate calculated from the source point
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

GetRelativePosition(Double, Double, Double, Double)

Calculates the end-point from a given source at a given range (meters) and bearing (degrees). This methods uses simple geometry equations to calculate the end-point.
Declaration
public static Position GetRelativePosition(double originLatitude, double originLongitude, double bearing, double distance)
Parameters
Type Name Description
System.Double originLatitude
System.Double originLongitude
System.Double bearing
System.Double distance
Returns
Type Description
Position
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

MetersToDecimalDegrees(Double, Double)

Converts a meter value into the corresponding decimal degree distance value
Declaration
public static double MetersToDecimalDegrees(double meters, double latitude)
Parameters
Type Name Description
System.Double meters That will be converted.
System.Double latitude Required to determine the distance projection.
Returns
Type Description
System.Double The converted distance in geo-referenced format.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

RandomPositionFromGeometry(BoundingBox)

This function calculates a random Position restricted by the given envelope representing a bounding box of an area.
Declaration
public static Position RandomPositionFromGeometry(this BoundingBox boundingBox)
Parameters
Type Name Description
BoundingBox boundingBox The envelope of a geometry to restrict the selection of a random Position
Returns
Type Description
Position Returns a new randomly selected position Position
Remarks
The random function select coordinates evenly distributed.
| Improve this Doc View Source

RandomPositionFromGeometry(Envelope)

This function calculates a random Position restricted by the given envelope representing a bounding box of an area.
Declaration
public static Position RandomPositionFromGeometry(this Envelope envelope)
Parameters
Type Name Description
NetTopologySuite.Geometries.Envelope envelope The envelopment of a geometry to restrict the selection of a random Position
Returns
Type Description
Position Returns a new randomly selected position Position
Remarks
The random function select coordinates evenly distributed.
| Improve this Doc View Source

RandomPositionFromGeometry(Geometry)

This function calculates a random Position restricted by the given geometry which can be either a Multi-/Polygon, Multi-/Point or Multi-/Line.
Declaration
public static Position RandomPositionFromGeometry(this Geometry geometry)
Parameters
Type Name Description
NetTopologySuite.Geometries.Geometry geometry The geometry to restrict the selection of a random Position
Returns
Type Description
Position Returns a new randomly selected position Position
Remarks
The random function select coordinates evenly distributed.
| Improve this Doc View Source

RotateCoordinateAround(Double, Double, Double, Double, Double, out Double)

This function rotates a given coordinate around a fixed (, ) coordinate at level.
Declaration
public static double RotateCoordinateAround(double rotatingPointX, double rotatingPointY, double sourceX, double sourceY, double degree, out double rotationTargetY)
Parameters
Type Name Description
System.Double rotatingPointX The x-coordinate of the coordinate to rotate.
System.Double rotatingPointY The y-coordinate of the coordinate to rotate.
System.Double sourceX The x-coordinate of the fixed point in space to rotate around.
System.Double sourceY The y-coordinate of the fixed point in space to rotate around.
System.Double degree The range to rotate the point.
System.Double rotationTargetY The output y-coordinate of target coordinate rotated to.
Returns
Type Description
System.Double Returns the x-coordinate of the target coordinate rotated to by degree around source.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

ToCoordinate(Position)

Converts the internal position object to the widely accepted GeoAPI.Geometries.Coordinate which represents a geospatial object. and can be used in combination with several gis-libraries.
Declaration
public static Coordinate ToCoordinate(this Position position)
Parameters
Type Name Description
Position position The Position to convert.
Returns
Type Description
NetTopologySuite.Geometries.Coordinate Returns a new NetTopologySuite.Geometries.Coordinate with the properties of the input position.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

ToGeoPosition(IRasterLayer, Position)

Transform the grid position of a cell within a raster layer into a geo position. Grid Position(2,2) into Geo Position(31.52, -24.58)
Declaration
public static Position ToGeoPosition(this IRasterLayer rasterLayer, Position gridPosition)
Parameters
Type Name Description
IRasterLayer rasterLayer Holds the grid and geo references.
Position gridPosition The position of the cell within the raster grid.
Returns
Type Description
Position The geo Position of the grid cells center point.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

ToPosition(Coordinate)

Transform a NetTopologySuite.Geometries.Coordinate object into a Position object.
Declaration
public static Position ToPosition(this Coordinate coordinate)
Parameters
Type Name Description
NetTopologySuite.Geometries.Coordinate coordinate The coordinate that should be transformed.
Returns
Type Description
Position The equivalent Position.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
| Improve this Doc View Source

Validate(Double, Double)

Validates the coordinate.
Declaration
public static bool Validate(double latitude, double longitude)
Parameters
Type Name Description
System.Double latitude The latitude.
System.Double longitude The longitude.
Returns
Type Description
System.Boolean True, if the coordinate is valid, false otherwise.
Remarks
This class is a collection of several helper methods to compute new positions based on a source with direction and distance (see CalculateMovementVector(Position, Double, Double, Double), GetRelativePosition(Double, Double, Double, Double) and CalculateDerivedPosition(Position, Double, Double)) and can be used to calculate distances or to retrieve direction from input bearings of radian yaw (see GetDistanceFromLatLonInKm(Double, Double, Double, Double), GetDistanceFromLatLonInM(Double, Double, Double, Double) and GetDirection(Double) ). The other methods will not be needed in most situations.
  • Improve this Doc
  • View Source
In This Article
Back to top Copyright © MARS GROUP. HAW Hamburg