Geometry service Offset method

The Offset method constructs translated copies of the input polylines or polygons.

Offset(SpatialReference SpatialReference, Geometry[] InGeometryArray, double OffsetDistance, LinearUnit LengthUnit, esriGeometryOffsetEnum OffsetHow, double BevelRatio, boolean SimplifyResult)

Parameter

Description

SpatialReference

The SpatialReference of the geometries in InPolygonArray. Cannot be null.

InGeometryArray

An array of polylines or polygons. Input types can be mixed. All geometries are assumed to be in the coordinate system defined by SpatialReference.

OffsetDistance

The distance which the output will be offset from the original.

OffsetUnit

(optional) The unit of measure in which lengths will be returned.

OffsetHow

One of the following: esriGeometryOffsetMitered, esriGeometryOffsetBevelled, esriGeometryOffsetRounded.

BevelRatio

Determines the tolerance for beveled or rounded curves.

SimplifyResult

True if self-intersecting loops should be removed from the result offset geometries.

Return Value

An array of geometries each of which is the same type as its corresponding input geometry and is offset by OffsetDistance.

Remarks

The Offset operation creates a geometry that is a constant distance from an input polyline or polygon. It is similar to buffering, but produces a one sided result. If OffsetDistance > 0, then the offset geometry is constructed to the right of the oriented input geometry. Otherwise, the offset geometry is constructed to the left. For a polygon, the orientation of outer rings is clockwise and for inner rings it is counter clockwise. So the "right side" of a polygon is always its inside.

BevelRatio is multiplied by the offset distance and the result determines how far a mitered offset intersection can be from the input curve before it is beveled or rounded. When esriGeometryOffsetMitered is specified, the input bevel ratio is ignored and 10 is used internally. When esriGeometryOffsetBeveled is specified, 1.1 will be used if BevelRatio is not specified.

The figures below show some examples of offsetting polylines. The red arrowhead shows the orientation of the input polyline.

Mitered offset to right of input curve (offset distance > 0). Loops have not been removed (SimplifyResults = false).
Mitered offset to right of input curve (offset distance > 0). Loops have not been removed (SimplifyResults = false).
Mitered offset to right of input curve (offset distance > 0). Loops have been removed (SimplifyResults = true).
Mitered offset to right of input curve (offset distance > 0). Loops have been removed (SimplifyResults = true).

Beveled offset to left of input curve (offset distance < 0). Bevel ratio = 1.0.
Beveled offset to left of input curve (offset distance < 0). Bevel ratio = 1.0.
Beveled offset to left of input curve (offset distance < 0). Bevel ratio = 2.0.
Beveled offset to left of input curve (offset distance < 0). Bevel ratio = 2.0.

Rounded offset to left of input curve (offset distance < 0). Bevel ratio = 1.0.
Rounded offset to left of input curve (offset distance < 0). Bevel ratio = 1.0.
RRounded offset to left of input curve (offset distance < 0). Bevel ratio = 2.0.
Rounded offset to left of input curve (offset distance < 0). Bevel ratio = 2.0.

2/28/2020