- Direct Known Subclasses:
CubicBezierSegment
,EllipticArcSegment
,LineSegment
A segment describes a continuous line between a start location and an end location. ArcGIS software supports both
linear segments (represented by LineSegment
) and curve segments (represented by CubicBezierSegment
and EllipticArcSegment
).
GeometryEngine.densify(Geometry, double)
can translate curve segments into multiple LineSegment
instances to approximate the curve.
Every ImmutablePart
in a Multipart
geometry is a collection of Segment
instances, where the
end of one segment is at exactly the same location as the start of the following segment. Multipart
geometries
can be composed from and decomposed into their constituent segments if required.
Because a single location is shared by adjacent segments, a single Point
object is used to represent the
shared location when you iterate through the points in a part. As a result, when iterating through the points
in a part of a polyline or polygon, there will be one more point than the number of segments in that same part.
Segments are immutable so you cannot change a segment's shape once it is created. For workflows that involve geometry editing, create a new segment with the properties you require.
From v100.12, curve segments are supported in geometry editing workflows. You can add curve segments to a
MultipartBuilder
, and if a geometry has curves (Geometry.hasCurves()
is true) then curve segments will
be returned where applicable from the ImmutablePart
collections that comprise the multipart geometry. Curve
and linear segments can be mixed together in the same geometry.
Like the geometries they comprise, a Segment
is immutable.
- Since:
- 100.0.0
-
Method Summary
Modifier and TypeMethodDescriptionGets a Point representing the end of this Segment.Gets the SpatialReference of this Segment.Gets a Point representing the start of this Segment.boolean
isClosed()
Indicates if this segment is closed, that is it has a matching start and end point.boolean
isCurve()
Indicates if this Segment is curved.
-
Method Details
-
getStartPoint
Gets a Point representing the start of this Segment.- Returns:
- the start point
- Since:
- 100.0.0
-
getEndPoint
Gets a Point representing the end of this Segment.- Returns:
- the end point
- Since:
- 100.0.0
-
getSpatialReference
Gets the SpatialReference of this Segment.- Returns:
- the SpatialReference of this Segment.
- Since:
- 100.0.0
-
isCurve
public boolean isCurve()Indicates if this Segment is curved. Prior to v100.12, onlyLineSegment
instances were supported when creating new geometries using aMultipartBuilder
or iterating theSegment
instances in an existingMultipart
geometry.From v100.12, you can add curve segments when using a
MultipartBuilder
, and get them back from an existingMultipart
geometry whenGeometry.hasCurves()
is true.- Returns:
- false if the object is a
LineSegment
; true otherwise - Since:
- 100.10.0
- See Also:
-
isClosed
public boolean isClosed()Indicates if this segment is closed, that is it has a matching start and end point.- Returns:
- true if the segment is closed, false otherwise
- Since:
- 100.0.0
-