DingiPolygon
@interface DingiPolygon : DingiMultiPoint <DingiOverlay>
An DingiPolygon object represents a closed shape consisting of four or more
vertices, specified as CLLocationCoordinate2D instances, and the edges that
connect them. For example, you could use a polygon shape to represent a
building, a lake, or an area you want to highlight.
You can add polygon shapes to the map by adding them to an DingiShapeSource
object. Configure the appearance of an DingiShapeSource’s or
DingiVectorTileSource’s polygons collectively using an DingiFillStyleLayer or
DingiSymbolStyleLayer object. To access a polygon’s attributes, use an
DingiPolygonFeature object.
Alternatively, you can add a polygon overlay directly to a map view using the
-[DingiMapView addAnnotation:] or -[DingiMapView addOverlay:] method. Configure
a polygon overlay’s appearance using
-[DingiMapViewDelegate mapView:strokeColorForShapeAnnotation:] and
-[DingiMapViewDelegate mapView:fillColorForPolygonAnnotation:].
The vertices are automatically connected in the order in which you provide
them. You should close the polygon by specifying the same
CLLocationCoordinate2D as the first and last vertices; otherwise, the
polygon’s fill may not cover the area you expect it to. To avoid filling the
space within the shape, give the polygon a transparent fill or use an
DingiPolyline object.
A polygon may have one or more interior polygons, or holes, that you specify as
DingiPolygon objects with the +polygonWithCoordinates:count:interiorPolygons:
method. For example, if a polygon represents a lake, it could exclude an island
within the lake using an interior polygon. Interior polygons may not themselves
have interior polygons. To represent a shape that includes a polygon within a
hole or, more generally, to group multiple polygons together in one shape, use
an DingiMultiPolygon or DingiShapeCollection object.
To make the polygon straddle the antimeridian, specify some longitudes less than −180 degrees or greater than 180 degrees.
-
The array of polygons nested inside the receiver.
The area occupied by any interior polygons is excluded from the overall shape. Interior polygons should not overlap. An interior polygon should not have interior polygons of its own.
If there are no interior polygons, the value of this property is
nil.Declaration
Objective-C
@property (readonly, nonatomic, nullable) NSArray<DingiPolygon *> *interiorPolygons;Swift
var interiorPolygons: [DingiPolygon]? { get } -
Creates and returns an
DingiPolygonobject from the specified set of coordinates.Declaration
Objective-C
+ (nonnull instancetype)polygonWithCoordinates: (nonnull const CLLocationCoordinate2D *)coords count:(NSUInteger)count;Swift
convenience init(coordinates coords: UnsafePointer<CLLocationCoordinate2D>, count: UInt)Parameters
coordsThe array of coordinates defining the shape. The data in this array is copied to the new object.
countThe number of items in the
coordsarray.Return Value
A new polygon object.
-
Creates and returns an
DingiPolygonobject from the specified set of coordinates and interior polygons.Declaration
Objective-C
+ (nonnull instancetype) polygonWithCoordinates:(nonnull const CLLocationCoordinate2D *)coords count:(NSUInteger)count interiorPolygons:(nullable NSArray<DingiPolygon *> *)interiorPolygons;Swift
convenience init(coordinates coords: UnsafePointer<CLLocationCoordinate2D>, count: UInt, interiorPolygons: [DingiPolygon]?)Parameters
coordsThe array of coordinates defining the shape. The data in this array is copied to the new object.
countThe number of items in the
coordsarray.interiorPolygonsAn array of
DingiPolygonobjects that define regions excluded from the overall shape. If this array isnilor empty, the shape is considered to have no interior polygons.Return Value
A new polygon object.
DingiPolygon Class Reference