Trim/Extend

Description

The trimExtend operation is performed on a geometry service resource. This operation trims or extends each polyline specified in the input array, using the user-specified guide polylines. When trimming features, the part to the left of the oriented cutting line is preserved in the output, and the other part is discarded. An empty polyline is added to the output array if the corresponding input polyline is neither cut nor extended.

You can provide arguments to the trimExtend operation as query parameters defined in the following parameters table:

Request parameters

Parameter

Details

f

Description:  (Optional) The response format. The default response format is html.
Values:   html | json

polylines

Description: An array of polylines to be trimmed or extended. The spatial reference of the polylines is specified by sr. The structure of each polyline in the array is the same as the structure of the JSON polyline objects returned by the ArcGIS REST API.

JSON structures:

Syntax:

[ <polyline1>, <polyline2>, ..., <polylineN> ]

Example:

[
  {
    "paths" : 
    [
      [[-117,34],[-116,34],[-117,33]],
      [[-115,44],[-114,43],[-115,43]]
    ]
  },
  {
    "paths" : 
    [
      [[32,17],[31,17],[30,17],[30,16]]
    ]
  }
]

trimExtendTo

Description : A polyline that is used as a guide for trimming or extending input polylines. The spatial reference of the polylines is specified by sr. The structure of each polyline is the same as the structure of the JSON polyline objects returned by the ArcGIS REST API.

JSON structures:

Syntax:

<polyline>

Example:

{
   "paths" : [
    [[-117,34],[-116,34],[-117,33]],
    [[-115,44],[-114,43],[-115,43]]
   ]
 }

sr

Description: The well-known ID of the spatial reference or a spatial reference JSON object for the input polylines. For a list of valid WKID values, see Projected coordinate systems and Geographic coordinate systems.

extendHow (optional)

Description: A flag that is used along with the trimExtend operation.

  • 0—By default, an extension considers both ends of a path. The old ends remain, and new points are added to the extended ends. The new points have attributes that are extrapolated from adjacent existing segments.
  • 1—If an extension is performed at an end, relocate the end point to the new position instead of leaving the old point and adding a new point at the new position.
  • 2—If an extension is performed at an end, do not extrapolate the end-segment's attributes for the new point. Instead, make its attributes the same as the current end. Incompatible with esriNoAttributes.
  • 4—If an extension is performed at an end, do not extrapolate the end-segment's attributes for the new point. Instead, make its attributes empty. Incompatible with esriKeepAttributes.
  • 8—Do not extend the "from" end of any path.
  • 16—Do not extend the "to" end of any path.

Example usage

In this example, two input polyline segments are trimmed/extended.

http://sampleserver6.arcgisonline.com/arcgis/rest/services/Utilities/Geometry/GeometryServer/trimExtend?sr=2229&polylines=[{"paths":[[[6805512,1843725],[6805496,1844963]]]},{"paths":[[[6805532,1842246],[6805523,1842901]]]}]&trimExtendTo={"paths":[[[6804206,1843554],[6805395,1843570],[6805514,1843607],[6805740,1843619]]]}&extendHow=1&f=html

JSON response syntax

{
  "geometryType" : "<esriGeometryPolyline>",
  "geometries" : [ <geometry1>, <geometry2>, ..., <polylineN> ]
}

JSON response example

{
 "geometryType": "esriGeometryPolyline",
 "geometries": [
  {
   "paths": [
    [
     [
      6805513.5270143142,
      1843606.8529860612
     ],
     [
      6805496.0001066327,
      1844962.9999830574
     ]
    ]
   ]
  },
  {
   "paths": [
    [
     [
      6805532.0000346303,
      1842245.9998396486
     ],
     [
      6805513.3022866584,
      1843606.7831129492
     ]
    ]
   ]
  }
 ]
}