ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Geometry Namespace / IGeometryEngine Interface / QueryFirstLastM Method
The input polyline.
The first M-value that is not NaN.
The last M-value that is not NaN.
Example Version

QueryFirstLastM Method (IGeometryEngine)
Gets the first and last defined M-values in the polyline.
Syntax
void QueryFirstLastM( 
   Polyline polyline,
   out double firstM,
   out double lastM
)

Parameters

polyline
The input polyline.
firstM
The first M-value that is not NaN.
lastM
The last M-value that is not NaN.

Return Value

The first and last defined M-values in the polyline. If the polyline is empty or all the M-values are NaN, then NaN values are returned.
Exceptions
ExceptionDescription
Polyline is null.
This geometry is not M-Aware.
Example
Get the first and last defined M-values in a polyline - QueryFirstLastM
string json = "{\"hasM\":true,\"paths\":[[[5,4,6],[6,4,5],[8,6,7]],[[0,0,1],[0,1,0],[1,1,-1],[1,0,-2]]]}";
Polyline polyline = PolylineBuilderEx.FromJson(json);

double firstM, lastM;
GeometryEngine.Instance.QueryFirstLastM(polyline, out firstM, out lastM);
// firstM = 6, lastM = -2

json = "{\"hasM\":true,\"paths\":[[[5,4,null],[6,4,5],[8,6,7]],[[0,0,1],[0,1,0],[1,1,-1],[1,0,null]]]}";
polyline = PolylineBuilderEx.FromJson(json);

GeometryEngine.Instance.QueryFirstLastM(polyline, out firstM, out lastM);
// firstM = 5, lastM = -1

json = "{\"hasM\":true,\"paths\":[[[5,4,null],[6,4,null],[8,6,null]],[[0,0,null],[0,1,null],[1,1,null],[1,0,null]]]}";
polyline = PolylineBuilderEx.FromJson(json);

GeometryEngine.Instance.QueryFirstLastM(polyline, out firstM, out lastM);
// firstM and lastM are NaN

json = "{\"hasM\":true,\"paths\":[]}";
polyline = PolylineBuilderEx.FromJson(json);

GeometryEngine.Instance.QueryFirstLastM(polyline, out firstM, out lastM);
// firstM and lastM are NaN
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3.3 or higher.
See Also