Table of Contents

Class CoordinateM

Namespace
NetTopologySuite.Geometries
Assembly
NetTopologySuite.dll

A lightweight class used to store coordinates on the 2-dimensional Cartesian plane and an additional measure (M) value.

This data object is suitable for use with coordinate sequences with dimension = 3 and measures = 1.

public sealed class CoordinateM : Coordinate, IComparable, IComparable<Coordinate>
Inheritance
CoordinateM
Implements
Inherited Members

Remarks

It is distinct from Point, which is a subclass of Geometry. Unlike objects of type Point (which contain additional information such as an envelope, a precision model, and spatial reference system information), a CoordinateM only contains ordinate values and properties.

CoordinateMs are two-dimensional points, with an additional M-ordinate. If an M-ordinate value is not specified or not defined, constructed coordinates have a M-ordinate of NaN (which is also the value of NullOrdinate). Apart from the basic accessor functions, NTS supports only specific operations involving the M-ordinate.

Implementations may optionally support Z-ordinate and M-measure values as appropriate for a CoordinateSequence. Use of Z and M setters or NetTopologySuite.Geometries.CoordinateM.this[int] indexer are recommended.

Constructors

CoordinateM()

Constructs a CoordinateM at (0,0,NaN).

public CoordinateM()

CoordinateM(Coordinate)

Constructs a CoordinateM having the same (x,y) values as c.

public CoordinateM(Coordinate c)

Parameters

c Coordinate

Coordinate to copy.

CoordinateM(double, double)

Constructs a CoordinateM at (x,y,NaN).

public CoordinateM(double x, double y)

Parameters

x double

X value.

y double

Y value.

CoordinateM(double, double, double)

Constructs a CoordinateM at (x,y,z).

public CoordinateM(double x, double y, double m)

Parameters

x double

The X value

y double

The Y value

m double

The measure value

Properties

CoordinateValue

Gets/Sets CoordinateMs (x,y,z) values.

public override Coordinate CoordinateValue { get; set; }

Property Value

Coordinate

this[int]

Gets or sets the ordinate value for the given index.

public override double this[int ordinateIndex] { get; set; }

Parameters

ordinateIndex int

The ordinate index

Property Value

double

The ordinate value

Remarks

The base implementation supports 0 (X), 1 (Y) and 2 (M) as values for the index.

Exceptions

ArgumentOutOfRangeException

Thrown if ordinateIndex is not in the valid range.

M

Gets or sets the M-ordinate value.

public override double M { get; set; }

Property Value

double

Methods

Create(double, double, double, double)

Create a Coordinate of the same type as this Coordinate, using the provided values for x, y and m.

public override Coordinate Create(double x = 0, double y = 0, double z = NaN, double m = NaN)

Parameters

x double

The x-ordinate value, if not provided, it is 0d.

y double

The y-ordinate value, if not provided, it is 0d.

z double

The z-ordinate value, if not provided, it is NullOrdinate.

m double

The m-ordinate value, if not provided, it is NullOrdinate.

Returns

Coordinate

A new CoordinateM

Remarks

A provided value for z will be silently dropped.

ToString()

Returns a string of the form (x, y, m=m).

public override string ToString()

Returns

string

string of the form (x, y, m=m)