ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Core.Geometry Namespace / GeometryEngine Class / OffsetMs Method
The input geometry. Cannot be a GeometryBag.
The offset value to add to each M-value.
Example

In This Topic
    OffsetMs Method (GeometryEngine)
    In This Topic
    Adds an offset value to each of the M-values.
    Syntax
    public Geometry OffsetMs( 
       Geometry geometry,
       double offset
    )
    Public Function OffsetMs( _
       ByVal geometry As Geometry, _
       ByVal offset As Double _
    ) As Geometry

    Parameters

    geometry
    The input geometry. Cannot be a GeometryBag.
    offset
    The offset value to add to each M-value.

    Return Value

    A geometry with the offset value added to each of the M-values. If offset is NaN or geometry is empty, then the input geometry is returned unchanged.
    Exceptions
    ExceptionDescription
    Geometry is null.
    This geometry is not M-Aware.
    This method is not implemented for GeometryBag.
    Example
    Add an offset value to each of the M-values - OffsetMs
    // Create a polyline and add an offset of 2 to each of the M-values
    MapPointBuilderEx pointBuilder = new MapPointBuilderEx(0, 0);
    pointBuilder.M = 1;
    MapPoint point1 = pointBuilder.ToGeometry();
    
    pointBuilder.SetValues(2, 2);
    pointBuilder.M = 3;
    MapPoint point2 = pointBuilder.ToGeometry();
    
    Polyline polyline = PolylineBuilderEx.CreatePolyline(new MapPoint[] { point1, point2 }, AttributeFlags.HasM); ;
          
    Polyline outPolyline = GeometryEngine.Instance.OffsetMs(polyline, 2) as Polyline;
    // The xy-values of the points in outPolyline are the same as the points in the input polyline.
    // The M-values in outPolyline are { 3, 5 }
    
    // Create an envelope and add an offset of 25 to each of the M-values
    EnvelopeBuilderEx envelopeBuilder = new EnvelopeBuilderEx(-5, 1, 2, 4);
    envelopeBuilder.MMin = 10;
    envelopeBuilder.MMax = 20;
    Envelope envelope = envelopeBuilder.ToGeometry();
    
    Envelope outEnvelope = GeometryEngine.Instance.OffsetMs(envelope, 25) as Envelope;
    // The xy-values of the points in outEnvelope are the same as the points in the input envelope.
    // outEnvelope.MMin = 35, outEnvelope.MMax = 45
    
    // Add a negative offset to the M-values of the envelope
    outEnvelope = GeometryEngine.Instance.OffsetMs(envelope, -10) as Envelope;
    // The xy-values of the points in outEnvelope are the same as the points in the input envelope.
    // outEnvelope.MMin = 0, outEnvelope.MMax = 10
    
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.3 or higher.
    See Also