[macos] Flatten point collections, not multipoints
This commit is contained in:
committed by
Minh Nguyễn
parent
042831604b
commit
a19ce69455
@@ -22,10 +22,13 @@ NS_ARRAY_OF(id <MGLAnnotation>) *MBXFlattenedShapes(NS_ARRAY_OF(id <MGLAnnotatio
|
||||
NSMutableArray *flattenedShapes = [NSMutableArray arrayWithCapacity:shapes.count];
|
||||
for (id <MGLAnnotation> shape in shapes) {
|
||||
NSArray *subshapes;
|
||||
// Flatten multipoints but not polylines or polygons.
|
||||
if ([shape isMemberOfClass:[MGLMultiPoint class]]) {
|
||||
NSUInteger pointCount = [(MGLMultiPoint *)shape pointCount];
|
||||
CLLocationCoordinate2D *coordinates = [(MGLMultiPoint *)shape coordinates];
|
||||
if ([shape isKindOfClass:[MGLMultiPolyline class]]) {
|
||||
subshapes = [(MGLMultiPolyline *)shape polylines];
|
||||
} else if ([shape isKindOfClass:[MGLMultiPolygon class]]) {
|
||||
subshapes = [(MGLMultiPolygon *)shape polygons];
|
||||
} else if ([shape isKindOfClass:[MGLPointCollection class]]) {
|
||||
NSUInteger pointCount = [(MGLPointCollection *)shape pointCount];
|
||||
CLLocationCoordinate2D *coordinates = [(MGLPointCollection *)shape coordinates];
|
||||
NSMutableArray *pointAnnotations = [NSMutableArray arrayWithCapacity:pointCount];
|
||||
for (NSUInteger i = 0; i < pointCount; i++) {
|
||||
MGLPointAnnotation *pointAnnotation = [[MGLPointAnnotation alloc] init];
|
||||
@@ -33,10 +36,6 @@ NS_ARRAY_OF(id <MGLAnnotation>) *MBXFlattenedShapes(NS_ARRAY_OF(id <MGLAnnotatio
|
||||
[pointAnnotations addObject:pointAnnotation];
|
||||
}
|
||||
subshapes = pointAnnotations;
|
||||
} else if ([shape isKindOfClass:[MGLMultiPolyline class]]) {
|
||||
subshapes = [(MGLMultiPolyline *)shape polylines];
|
||||
} else if ([shape isKindOfClass:[MGLMultiPolygon class]]) {
|
||||
subshapes = [(MGLMultiPolygon *)shape polygons];
|
||||
} else if ([shape isKindOfClass:[MGLShapeCollection class]]) {
|
||||
subshapes = MBXFlattenedShapes([(MGLShapeCollection *)shape shapes]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user