Polyline

class Polyline : Multipart

A multipart linear shape. Polyline geometries represent the shape and location of linear features, such as a street in a road network, a contour line representing an elevation value, or a hiking trail. A polyline can be used to define geometry for features and graphics, or as input or output for tasks or geoprocessing operations, such as the output of a network trace.

A polyline can be used as the geometry of a Feature or Graphic. To obtain the geometry on these objects, use GeoElement.getGeometry().

A polyline is composed of a series of connected segments, where each Segment defines a continuous line between a start and an end point. You can define a new polyline from a collection of Point objects to create a series of straight LineSegment objects connecting the points you specified. You can use PolylineBuilder to build a polyline one point at a time, or to modify an existing polyline.

A polyline can have multiple parts. Each part is a series of connected segments, but the parts can be disjoint, for example, a polyline representing a street that ends, and starts again a block later. Parts can also intersect at one or more points (or vertices), for example, a polyline representing a river and its tributaries.

Polylines inherit from Multipart, which provides members for iterating the segments and points of each part in a polyline.

Polylines are based upon the parent Geometry class which is immutable, meaning you can not change its shape once it is created. If you need to modify a polyline once it has been created, use the PolylineBuilder class.

See also

Constructors

Link copied to clipboard
fun Polyline(mutableParts: Iterable<MutablePart>)

Constructs a Polyline with the given list of MutablePart.

Link copied to clipboard
fun Polyline(points: Iterable<Point>, spatialReference: SpatialReference? = null)

Constructs a Polyline with the given collection of Points.

Functions

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean

fun equals(right: Geometry, tolerance: Double): Boolean

Check if two geometries are equal to within some tolerance. This function performs a lightweight comparison of two geometries, such as might be useful when writing test code. It uses the tolerance to compare each of x, y, and any other values the geometries possess (such as z or m) independently in the manner: abs(value1 - value2) <= tolerance. Returns true if the difference of each is within the tolerance and all other properties of the geometries are exactly equal (spatial reference, vertex count, etc.). A single tolerance is used even if the units for the horizontal coordinates and other values differ, e.g horizontal coordinates in degrees and vertical coordinates in meters. This function does not respect modular arithmetic of spatial references which wrap around, so longitudes of -180 and +180 degrees are considered to differ by 360 degrees. Returns false if an error occurs. For topological equality, use relational operators instead of this function. See GeometryEngine.equals(Geometry, Geometry).

Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
open override fun toJson(): String

Convert an object to JSON string.

Properties

Link copied to clipboard
val dimension: GeometryDimension

The number of dimensions for the geometry. Returns GeometryDimension.Unknown if an error occurs.

Link copied to clipboard
val extent: Envelope
Link copied to clipboard
val hasCurves: Boolean

True if this geometry contains curve segments; false otherwise. The ArcGIS Platform supports polygon and polyline geometries that contain curve segments (where Segment.getIsCurve() is true, sometimes known as true curves or nonlinear segments). Curves may be present in certain types of data - for example Mobile Map Packages (MMPK) or geometry JSON. When connecting to ArcGIS feature services that support curves[ArcGISFeatureServiceInfo.getSupportsTrueCurve()], ArcGIS Maps API retrieves densified versions of curve feature geometries by default.

Link copied to clipboard
val hasM: Boolean

A value indicating if the geometry has M. If an error occurs false is returned. M is a vertex value that is stored with the geometry.

Link copied to clipboard
val hasZ: Boolean

A value indicating if the geometry has Z. If an error occurs false is returned. Z typically represent elevations or heights.

Link copied to clipboard
val isEmpty: Boolean

Check if a geometry is empty or not. Only check the geometry to see if it is empty. Does not check the spatial reference. Returns true if an error occurs.

Link copied to clipboard
val parts: PartCollection
Link copied to clipboard
val spatialReference: SpatialReference?
Link copied to clipboard
open override val unknownJson: Map<String, Any>

Unknown data from the source JSON. Unknown JSON is a dictionary of values that was in the source JSON but was unparsed by this API.

Link copied to clipboard
open override val unsupportedJson: Map<String, Any>

Unsupported data from the source JSON. Unsupported JSON is a dictionary of values that are supported by web maps, but not exposed through this API.