summaryrefslogtreecommitdiff
path: root/platform/ios/src/MGLMapView.mm
diff options
context:
space:
mode:
authorJesse Bounds <jesse@rebounds.net>2016-10-20 17:14:19 -0700
committerGitHub <noreply@github.com>2016-10-20 17:14:19 -0700
commit1216050f9c5c472f1c8edcc32447004a40680ec7 (patch)
tree77f937aaeaa6e34f8b2fa84e5f7c721e8f3d541f /platform/ios/src/MGLMapView.mm
parentbaf82fc4d4882480e6dd16ea9821be29d390bf00 (diff)
downloadqtlocation-mapboxgl-1216050f9c5c472f1c8edcc32447004a40680ec7.tar.gz
Add MGLPointCollection for GeoJSON multipoints (#6742)
* [ios, macos] Introduce MGLPointCollection This makes MGLMultiPoint abstract again so that it is only a place for shared functionality of polygons and polylines. The multipoint feature replaces the point collection feature and can be used to initialize a MGLGeoJSONSource. The previously added swift_names for polyline and polygon are removed, for now. This also updates the iOS and macOS annotation adding logic so that unwanted shapes really are avoided. Previously the combined OR conditions meant that an annotation had to logically be NOT a kind of all three types so the check always let the annotation slip through. This also expands the guard to deflect the new MGLPointCollection.
Diffstat (limited to 'platform/ios/src/MGLMapView.mm')
-rw-r--r--platform/ios/src/MGLMapView.mm12
1 files changed, 3 insertions, 9 deletions
diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm
index 88f4d8a970..bb7e446620 100644
--- a/platform/ios/src/MGLMapView.mm
+++ b/platform/ios/src/MGLMapView.mm
@@ -2855,13 +2855,6 @@ public:
if ([annotation isKindOfClass:[MGLMultiPoint class]])
{
- // Actual multipoints aren’t supported as annotations.
- if ([annotation isMemberOfClass:[MGLMultiPoint class]]
- || [annotation isMemberOfClass:[MGLMultiPointFeature class]])
- {
- continue;
- }
-
// The polyline or polygon knows how to style itself (with the map view’s help).
MGLMultiPoint *multiPoint = (MGLMultiPoint *)annotation;
if (!multiPoint.pointCount) {
@@ -2876,8 +2869,9 @@ public:
[(NSObject *)annotation addObserver:self forKeyPath:@"coordinates" options:0 context:(void *)(NSUInteger)annotationTag];
}
else if ( ! [annotation isKindOfClass:[MGLMultiPolyline class]]
- || ![annotation isKindOfClass:[MGLMultiPolygon class]]
- || ![annotation isKindOfClass:[MGLShapeCollection class]])
+ && ![annotation isKindOfClass:[MGLMultiPolygon class]]
+ && ![annotation isKindOfClass:[MGLShapeCollection class]]
+ && ![annotation isKindOfClass:[MGLPointCollection class]])
{
MGLAnnotationView *annotationView;
NSString *symbolName;