ArcGIS Runtime SDK for iOS: AGSPolyline Class Reference
ArcGIS Runtime SDK for iOS  100.15
AGSPolyline Class Reference

Description

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 an AGSFeature or AGSGraphic. To obtain the geometry on these objects, use AGSGeoElement::geometry.

A polyline is composed of a series of connected segments, where each AGSSegment defines a continuous line between a start and an end point. You can define a new polyline from a collection of AGSPoint objects to create a series of straight AGSLineSegment objects connecting the points you specified. You can use AGSPolylineBuilder 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 AGSMultipart, which provides members for iterating the segments and points of each part in a polyline.

Polylines are based upon the parent AGSGeometry 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 AGSPolylineBuilder class.

Since
100
Note
This class represents an immutable polyline geometry, it cannot be modified after being created. Use toBuilder (AGSPolyline): to get a polyline builder using a copy of this geometry as a starting off point. The builder can then be modified to produce a new geometry.
See also
AGSPolylineBuilder to construct or modify polylines programmatically.
AGSSketchEditor to construct or modify geometries interactively by sketching on a map.
AGSGeometryEngine to perform operations on geometries.
Inheritance diagram for AGSPolyline:
AGSMultipart AGSGeometry AGSObject <AGSJSONSerializable>

Instance Methods

(BOOL) - isEqualToGeometry:
 
(BOOL) - isEqualToGeometry:
 
(BOOL) - isEqualToGeometry:tolerance:
 
(AGSPolylineBuilder *) - toBuilder
 
(nullable id) - toJSON:
 

Class Methods

(nullable id< AGSJSONSerializable >) + fromJSON:error:
 
(instancetype) + polylineWithPoints:
 

Properties

AGSGeometryDimension dimension
 
BOOL empty
 
AGSEnvelopeextent
 
AGSGeometryType geometryType
 
BOOL hasCurves
 
BOOL hasM
 
BOOL hasZ
 
AGSPartCollectionparts
 
AGSSpatialReferencespatialReference
 
NSDictionary< NSString *, id > * unknownJSON
 
NSDictionary< NSString *, id > * unsupportedJSON
 

Method Documentation

◆ fromJSON:error:

+ (nullable id<AGSJSONSerializable>) fromJSON: (id)  JSONObject
error: (NSError **)  error 
staticrequiredinherited

Initializes and returns an object from its JSON representation.

Parameters
JSONObjectNSDictionary or NSArray containing the JSON.
errorencountered during the operation, if any.
Since
100

◆ isEqualToGeometry: [1/2]

- (BOOL) isEqualToGeometry: (AGSGeometry *)  other

Compares whether two geometries are equal.

Parameters
otherThe other geometry object to compare this geometry object to.
Returns
YES if the geometries are equal.
Since
100

◆ isEqualToGeometry: [2/2]

- (BOOL) isEqualToGeometry: (AGSPolyline *)  other

Compares whether two polyline geometries are equal.

Parameters
otherpolyline to compare this polyline to
Returns
YES if the polylines are equal
Since
100

◆ isEqualToGeometry:tolerance:

- (BOOL) isEqualToGeometry: (AGSGeometry *)  other
tolerance: (double)  tolerance 

Compares two geometry objects for equality to within some tolerance.

Parameters
otherThe other geometry object to compare this geometry object to.
toleranceThe tolerance.
Returns
YES if the geometries are equal within the given tolerance, otherwise NO.
Since
100

◆ polylineWithPoints:

+ (instancetype) polylineWithPoints: (NSArray< AGSPoint * > *)  points

Initializes a polyline.

Parameters
pointsfor the geometry to be constructed
Since
100

◆ toBuilder

- (AGSPolylineBuilder*) toBuilder

Returns a builder using a copy of this geometry as a starting off point. The builder can then be modified to produce a new geometry.

Returns
builder that can be used to build polyline geometries.
Since
100
Note
Operations on the builder affect only its own internal copy of the geometry. They do not affect this geometry.

Implements AGSGeometry.

◆ toJSON:

- (nullable id) toJSON: (NSError **)  error
requiredinherited

Returns JSON representation for this object.

Parameters
errorencountered during the operation, if any.
Returns
NSDictionary or NSArray containing the JSON.
Since
100

Reimplemented in AGSPortalItem.

Property Documentation

◆ dimension

- (AGSGeometryDimension) dimension
readnonatomicassigninherited

The dimension of this geometry object.

Note
The property will be AGSGeometryDimension::AGSGeometryDimensionUnknown if an error occurs.
Since
100

◆ empty

- (BOOL) empty
readnonatomicassigninherited

Indicates whether this geometry has any vertices.

Since
100

◆ extent

- (AGSEnvelope*) extent
readnonatomicstronginherited

Smallest, rectangular bounding-box that covers the geometry.

Since
100

◆ geometryType

- (AGSGeometryType) geometryType
readnonatomicassigninherited

The type of this geometry.

Since
100

◆ hasCurves

- (BOOL) hasCurves
readnonatomicassigninherited

YES if this geometry contains curve segments, NO otherwise.

The ArcGIS Platform supports polygon and polyline geometries that contain curve segments (where AGSSegment::curve is YES, 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 (AGSArcGISFeatureServiceInfo::supportsTrueCurve), ArcGIS Runtime retrieves densified versions of curve feature geometries by default.

If a polygon or polyline geometry contains curve segments, this property is YES. Prior to v100.12, it was not possible to access curve segments, and only AGSLineSegment instances would be returned when iterating through the segments in an AGSPolygon or AGSPolyline object, irrespective of this property.

From v100.12, you can use curve segments when using an AGSMultipartBuilder to create or edit polygon and polyline geometries, and also get curve segments when iterating through the segments of existing AGSMultipart geometries when this property returns YES. You can also choose to return true curves from feature services by using AGSArcGISRuntimeEnvironment::serviceCurveGeometryMode.

See also
AGSGeometryBuilder::hasCurves, AGSPart::hasCurves, AGSSegment::curve, AGSCubicBezierSegment, AGSEllipticArcSegment
Since
100

◆ hasM

- (BOOL) hasM
readnonatomicassigninherited

Indicates whether this geometry contains m (measure) values.

Since
100

◆ hasZ

- (BOOL) hasZ
readnonatomicassigninherited

Indicates whether this geometry contains z coordinate values. Only 3D geometries contain z values.

Since
100

◆ parts

- (AGSPartCollection*) parts
readnonatomicstronginherited

The parts of this geometry.

Can be iterated through a for-in loop.

AGSPolygon* polygon = ... ; //polygon with 2 parts (rings)
for (AGSPart* part in polygon.parts) {
...
}
AGSPartCollection * parts
Definition: AGSMultipart.h:75
Represents a single part of a multipart geometry (AGSPolygon or AGSPolyline).
Definition: AGSPart.h:67
A multipart shape used to represent an area.
Definition: AGSPolygon.h:78
Since
100

◆ spatialReference

- (AGSSpatialReference*) spatialReference
readnonatomicstronginherited

The spatial reference associated with the gometry. It specifies the coordinate system for the geometry's x, y, and z coordinate values.

Since
100
Note
Geometries that represent geographic locations should always have a spatial reference. Otherwise the coordinates of the geometry are meaningless.

◆ unknownJSON

- (NSDictionary<NSString*,id>*) unknownJSON
readrequirednonatomiccopyinherited

A dictionary of values that was in the source JSON but was unparsed by API.

Returns
NSDictionary containing the unknown JSON.
Since
100

◆ unsupportedJSON

- (NSDictionary<NSString*,id>*) unsupportedJSON
readnonatomiccopyinherited

A dictionary of values that are supported by the REST API, but not exposed through the SDK API.

Returns
NSDictionary containing the unsupported JSON.
Since
100