summaryrefslogtreecommitdiff
path: root/platform/darwin/src/MGLPointCollection.h
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/src/MGLPointCollection.h')
-rw-r--r--platform/darwin/src/MGLPointCollection.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/platform/darwin/src/MGLPointCollection.h b/platform/darwin/src/MGLPointCollection.h
new file mode 100644
index 0000000000..db497d0a52
--- /dev/null
+++ b/platform/darwin/src/MGLPointCollection.h
@@ -0,0 +1,51 @@
+#import <Foundation/Foundation.h>
+#import <CoreLocation/CoreLocation.h>
+
+#import "MGLOverlay.h"
+#import "MGLShape.h"
+
+/**
+ The `MGLPointCollection` class is used to define an array of disconnected
+ coordinates. The points in the collection may be related but are not
+ connected visually in any way.
+
+ @note `MGLPointCollection` objects cannot be added to a map view using
+ `-[MGLMapView addAnnotations:]` and related methods. However, when used in a
+ `MGLPointCollectionFeature` to initialize a `MGLGeoJSONSource` that is added
+ to the map view's style, the point collection represents as a group of distinct
+ annotations.
+ */
+@interface MGLPointCollection : MGLShape <MGLOverlay>
+
+/**
+ Creates and returns a `MGLPointCollection` 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 point collection object.
+ */
++ (instancetype)pointCollectionWithCoordinates:(CLLocationCoordinate2D *)coords count:(NSUInteger)count;
+
+/** The array of coordinates associated with the shape. */
+@property (nonatomic, readonly) CLLocationCoordinate2D *coordinates NS_RETURNS_INNER_POINTER;
+
+/** The number of coordinates associated with the shape. */
+@property (nonatomic, readonly) NSUInteger pointCount;
+
+/**
+ Retrieves one or more coordinates associated with the shape.
+
+ @param coords On input, you must provide a C array of structures large enough
+ to hold the desired number of coordinates. On output, this structure
+ contains the requested coordinate data.
+ @param range The range of points you want. The `location` field indicates the
+ first point you are requesting, with `0` being the first point, `1` being
+ the second point, and so on. The `length` field indicates the number of
+ points you want. The array in _`coords`_ must be large enough to accommodate
+ the number of requested coordinates.
+ */
+- (void)getCoordinates:(CLLocationCoordinate2D *)coords range:(NSRange)range;
+
+@end