ArcGIS Runtime SDK for iOS
100.15

A builder to build polygon geometries.
Instances of this class represent a builder that can build polygon geometries. Polygon geometries are immutable, they cannot be modified after they are created. Use builders to create new geometries either from scratch, or by using an existing geometry as a starting off point. Modifications made through the builder affect only its own internal copy of the geometry. They do not affect the original geometry.
AGSSketchEditor
to construct or modify geometries interactively by sketching on a map Instance Methods  
(instancetype)   addPartWithPoints: 
(instancetype)   addPoint: 
(instancetype)   addPoints:toPartAtIndex: 
(instancetype)   addPointWithX:y: 
(instancetype)   addPointWithX:y:z: 
(instancetype)   initWithPoints: 
(instancetype)   initWithPolygon: 
(instancetype)   initWithSpatialReference: 
(BOOL)   isEmpty 
(instancetype)   replaceGeometry: 
(instancetype)   replaceGeometry: 
(AGSPolygon *)   toGeometry 
(AGSPolyline *)   toPolyline 
Class Methods  
(AGSGeometryBuilder *)  + builderWithGeometry: 
(AGSGeometryBuilder *)  + builderWithGeometryType:spatialReference: 
(instancetype)  + polygonBuilderWithPoints: 
(instancetype)  + polygonBuilderWithPolygon: 
(instancetype)  + polygonBuilderWithSpatialReference: 
Properties  
AGSEnvelope *  extent 
AGSGeometryType  geometryType 
BOOL  hasCurves 
BOOL  hasM 
BOOL  hasZ 
AGSMutablePartCollection *  parts 
AGSSpatialReference *  spatialReference 
 (instancetype) addPartWithPoints:  (NSArray< AGSPoint * > *)  points 
Add new part with given points to the builder's multipart geometry.
 (instancetype) addPoint:  (AGSPoint *)  point 
Appends a vertex to the builder's multipart geometry.
 (instancetype) addPoints:  (NSArray< AGSPoint * > *)  points  
toPartAtIndex:  (NSInteger)  partIndex  
Add points to the builder's multipart geometry at given part index.
 (instancetype) addPointWithX:  (double)  x  
y:  (double)  y  
Appends a vertex to the builder's multipart geometry.
 (instancetype) addPointWithX:  (double)  x  
y:  (double)  y  
z:  (double)  z  
Appends a vertex to the builder's multipart geometry.
+ (AGSGeometryBuilder*) builderWithGeometry:  (nullable AGSGeometry *)  geometry 
Factory method to create a geometry builder from a geometry.
geometry  The geometry to be used as the starting point for further modifications. 
AGSGeometryBuilder::hasCurves
+ (AGSGeometryBuilder*) builderWithGeometryType:  (AGSGeometryType)  geometryType  
spatialReference:  (nullable AGSSpatialReference *)  sr  
Factory method to create a geometry builder from a geometry type and spatial reference.
Prior to v100.12, only geometries without curves could be used. Passing in a geometry where AGSGeometry::hasCurves
is YES
would fail to replace the geometry.
From v100.12, geometries with curves are supported.
geometryType  The type of geometry to be constructed. 
sr  The spatial reference for the geometry to be constructed. 
AGSGeometryBuilder::hasCurves
 (instancetype) initWithPoints:  (NSArray< AGSPoint * > *)  points 
Initializes a builder.
points  for the geometry to be constructed 
 (instancetype) initWithPolygon:  (nullable AGSPolygon *)  poly 
Creates a polygon builder.
Prior to v100.12, only polygons without curves could be used. Passing in a polygon where AGSGeometry::hasCurves
is YES
would throw an exception.
From v100.12, polygons with curves are supported.
poly  The polygon geometry to be used as the starting point for further modifications. Can be nil . 
AGSGeometryBuilder::hasCurves
 (instancetype) initWithSpatialReference:  (nullable AGSSpatialReference *)  sr 
Initializes a builder.
sr  The spatial reference for the geometry to be constructed 
 (BOOL) isEmpty 
Indicates whether the builder's geometry is empty.
AGSGeometry::isEmpty
+ (instancetype) polygonBuilderWithPoints:  (NSArray< AGSPoint * > *)  points 
Initializes a builder.
points  for the geometry to be constructed 
+ (instancetype) polygonBuilderWithPolygon:  (nullable AGSPolygon *)  poly 
Creates a polygon builder.
Prior to v100.12, only polygons without curves could be used. Passing in a polygon where AGSGeometry::hasCurves
is YES
would throw an exception.
From v100.12, polygons with curves are supported.
poly  The polygon geometry to be used as the starting point for further modifications. Can be nil . 
AGSGeometryBuilder::hasCurves
+ (instancetype) polygonBuilderWithSpatialReference:  (nullable AGSSpatialReference *)  sr 
Initializes a builder.
sr  The spatial reference for the geometry to be constructed 
 (instancetype) replaceGeometry:  (nullable AGSGeometry *)  geometry 
Replaces the builder's geometry with the provided one.
This does not update the spatial reference of the builder. If the geometry is nil
, the builder is cleared.
Prior to v100.12, only geometries without curves could be used. Passing in a geometry where AGSGeometry::hasCurves
is YES
would fail to replace the geometry.
From v100.12, geometries with curves are supported.
geometry  The geometry object to replace with. 
 (instancetype) replaceGeometry:  (nullable AGSPolygon *)  geometry 
Replaces the builder's geometry with the provided one.
geometry  to replace with 
 (AGSPolygon *) toGeometry 
Returns the polygon geometry this builder is constructing or modifying.
Implements AGSGeometryBuilder.
 (AGSPolyline *) toPolyline 

readnonatomicstronginherited 
Smallest, rectangular boundingbox that covers the builder's geometry.
AGSGeometry::extent

readnonatomicassigninherited 
The type of geometry the builder will construct or modify.

readnonatomicassigninherited 
A value indicating whether the geometry builder currently contains any curve segments.
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 (MMPKs), or geometry JSON.
Prior to v100.12, only AGSLineSegment
instances were supported when creating new geometries using an AGSMultipartBuilder
. Attempting to add curve geometries to an AGSMultipartBuilder
would cause an error.
From v100.12, you can use curves in an AGSMultipartBuilder
. New segment types AGSCubicBezierSegment
and AGSEllipticArcSegment
represent different types of curve that can be added to polygon and polyline geometries.

readnonatomicassigninherited 
Indicates whether the builder's geometry contains m (measure) values.
AGSGeometry::hasM

readnonatomicassigninherited 
Indicates whether the builder's geometry contains z coordinate values.
AGSGeometry::hasZ

readwritenonatomicstronginherited 
The parts of the builder's geometry. Can be iterated through a forin loop.

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