MGLShapeCollection


@interface MGLShapeCollection : MGLShape

An MGLShapeCollection object represents a shape consisting of zero or more distinct but related shapes that are instances of MGLShape. The constituent shapes can be a mixture of different kinds of shapes.

MGLShapeCollection is most commonly used to add multiple shapes to a single MGLShapeSource. Configure the appearance of an MGLShapeSource’s or MGLVectorTileSource’s shape collection collectively using an MGLSymbolStyleLayer object, or use multiple instances of MGLCircleStyleLayer, MGLFillStyleLayer, and MGLLineStyleLayer to configure the appearance of each kind of shape inside the collection.

You cannot add an MGLShapeCollection object directly to a map view as an annotation. However, you can create individual MGLPointAnnotation, MGLPolyline, and MGLPolygon objects from the shapes array and add those annotation objects to the map view using the -[MGLMapView addAnnotations:] method.

To represent a collection of point, polyline, or polygon shapes, it may be more convenient to use an MGLPointCollection, MGLMultiPolyline, or MGLMultiPolygon object, respectively. To access a shape collection’s attributes, use the corresponding MGLFeature object.

A shape collection is known as a GeometryCollection geometry in GeoJSON.

  • An array of shapes forming the shape collection.

    Declaration

    Objective-C

    @property (readonly, copy, nonatomic) NSArray<MGLShape *> *_Nonnull shapes;

    Swift

    var shapes: [MGLShape] { get }
  • Creates and returns a shape collection consisting of the given shapes.

    Declaration

    Objective-C

    + (nonnull instancetype)shapeCollectionWithShapes:
        (nonnull NSArray<MGLShape *> *)shapes;

    Swift

    convenience init(shapes: [MGLShape])

    Parameters

    shapes

    The array of shapes defining the shape collection. The data in this array is copied to the new object.

    Return Value

    A new shape collection object.