blob: b9ec6b839965e1d4f165264d6f82a61e825c3fb6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
#import "MGLMultiPoint.h"
#import "MGLOverlay.h"
#import "MGLTypes.h"
NS_ASSUME_NONNULL_BEGIN
/**
The `MGLPolygon` class represents a shape consisting of one or more points that
define a closed polygon. The points are connected end-to-end in the order they
are provided. The first and last points are connected to each other to create
the closed shape.
*/
@interface MGLPolygon : MGLMultiPoint <MGLOverlay>
/**
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`.
*/
@property (nonatomic, nullable, readonly) NS_ARRAY_OF(MGLPolygon *) *interiorPolygons;
/**
Creates and returns an `MGLPolygon` object from the specified set of
coordinates.
@param coords The array of coordinates defining the shape. The data in this
array is copied to the new object.
@param count The number of items in the `coords` array.
@return A new polygon object.
*/
+ (instancetype)polygonWithCoordinates:(const CLLocationCoordinate2D *)coords count:(NSUInteger)count;
/**
Creates and returns an `MGLPolygon` object from the specified set of
coordinates and interior polygons.
@param coords The array of coordinates defining the shape. The data in this
array is copied to the new object.
@param count The number of items in the `coords` array.
@param interiorPolygons An array of `MGLPolygon` objects that define regions
excluded from the overall shape. If this array is `nil` or empty, the shape
is considered to have no interior polygons.
@return A new polygon object.
*/
+ (instancetype)polygonWithCoordinates:(const CLLocationCoordinate2D *)coords count:(NSUInteger)count interiorPolygons:(nullable NS_ARRAY_OF(MGLPolygon *) *)interiorPolygons;
@end
/**
The `MGLMultiPolygon` class represents a shape consisting of one or more
polygons that do not overlap. For example, you would use an `MGLMultiPolygon`
object to represent an atoll together with an island in the atoll’s lagoon:
the atoll itself would be one `MGLPolygon` object, while the inner island would
be another.
@note `MGLMultiPolygon` objects cannot be added to a map view using
`-[MGLMapView addAnnotations:]` and related methods.
*/
@interface MGLMultiPolygon : MGLShape <MGLOverlay>
/**
An array of polygons forming the multipolygon.
*/
@property (nonatomic, copy, readonly) NS_ARRAY_OF(MGLPolygon *) *polygons;
/**
Creates and returns a multipolygon object consisting of the given polygons.
@param polygons The array of polygons defining the shape.
@return A new multipolygon object.
*/
+ (instancetype)multiPolygonWithPolygons:(NS_ARRAY_OF(MGLPolygon *) *)polygons;
@end
NS_ASSUME_NONNULL_END
|