MGLMultiPoint
@interface MGLMultiPoint : MGLShape
The MGLMultiPoint
class is an abstract superclass used to define shapes composed of multiple vertices.
Create instances of MGLPolyline
or MGLPolygon
in order to use properties of MGLMultiPoint
. Do not create instances of MGLMultiPoint
directly and do not create your own subclasses of this class. You can use the method and properties of this class to access information about the vertices of the line or polygon.
Do not confuse MGLMultiPoint
with MGLPointCollection
, which represents a collection of related but disconnected points.
coordinates
The array of vertices associated with the shape.
This C array is a pointer to a structure inside the multipoint object, which may have a lifetime shorter than the multipoint object and will certainly not have a longer lifetime. Therefore, you should copy the C array if it needs to be stored outside of the memory context in which you use this property.
Declaration
Objective-C
@property (nonatomic, readonly)
NS_RETURNS_INNER_POINTER CLLocationCoordinate2D *coordinates;
Swift
var coordinates: UnsafeMutablePointer<CLLocationCoordinate2D> { get }
pointCount
The number of vertices in the shape.
Declaration
Objective-C
@property (nonatomic, readonly) NSUInteger pointCount;
Swift
var pointCount: UInt { get }
-getCoordinates:range:
Retrieves the vertices of part of the shape.
Declaration
Objective-C
- (void)getCoordinates:(nonnull CLLocationCoordinate2D *)coords
range:(NSRange)range;
Swift
func getCoordinates(_ coords: UnsafeMutablePointer<CLLocationCoordinate2D>, range: NSRange)
Parameters
coords
On input, you must provide a C array of CLLocationCoordinate2D
structures large enough to hold the desired number of coordinates. On output, this structure contains the requested coordinate data.
range
The range of vertices you want. The location
field indicates the first vertex you are requesting, with 0
being the first vertex, 1
being the second vertex, and so on. The length
field indicates the number of vertices you want. The array in coords
must be large enough to accommodate the number of requested coordinates.
-setCoordinates:count:
Sets the shape’s vertices to the given C array of vertices.
Declaration
Objective-C
- (void)setCoordinates:(nonnull CLLocationCoordinate2D *)coords
count:(NSUInteger)count;
Swift
func setCoordinates(_ coords: UnsafeMutablePointer<CLLocationCoordinate2D>, count: UInt)
Parameters
coords
The array of coordinates defining the shape. The data in this array is copied to the shape’s coordinates
property.
count
The number of coordinates from the coords
array.
-insertCoordinates:count:atIndex:
Inserts the given vertices into the shape.
If the shape is currently visible on the map as an annotation, it is redrawn immediately. If the shape is part of an MGLShapeSource
object, you must explicitly set the MGLShapeSource.shape
property in order for any style layers that use the source to be redrawn.
Declaration
Objective-C
- (void)insertCoordinates:(nonnull const CLLocationCoordinate2D *)coords
count:(NSUInteger)count
atIndex:(NSUInteger)index;
Swift
func insertCoordinates(_ coords: UnsafePointer<CLLocationCoordinate2D>, count: UInt, at index: UInt)
Parameters
coords
The array of coordinates to insert into the shape. The data in this array is copied to the shape’s coordinates
property.
count
The number of items in the coords
array.
index
The zero-based index at which the first coordinate in coords
will appear in the coordinates
property.
-appendCoordinates:count:
Appends the given vertices to the shape.
If the shape is currently visible on the map as an annotation, it is redrawn immediately. If the shape is part of an MGLShapeSource
object, you must explicitly set the MGLShapeSource.shape
property in order for any style layers that use the source to be redrawn.
Declaration
Objective-C
- (void)appendCoordinates:(nonnull const CLLocationCoordinate2D *)coords
count:(NSUInteger)count;
Swift
func appendCoordinates(_ coords: UnsafePointer<CLLocationCoordinate2D>, count: UInt)
Parameters
coords
The array of coordinates to add to the shape. The data in this array is copied to the shape’s coordinates
property.
count
The number of items in the coords
array.
-replaceCoordinatesInRange:withCoordinates:
Replaces the vertices at the given range in the shape with the same number of vertices from a given C array.
If the shape is currently visible on the map as an annotation, it is redrawn immediately. If the shape is part of an MGLShapeSource
object, you must explicitly set the MGLShapeSource.shape
property in order for any style layers that use the source to be redrawn.
The number of coordinates in coords
must be equal to the length of range
. If you want to insert or delete one or more vertices, use the -replaceCoordinatesInRange:withCoordinates:count:
method.
If range
extends beyond the shape’s coordinates
property, an NSRangeException
is raised. If you want to append new vertices to the shape, use the -appendCoordinates:count:
method.
Declaration
Objective-C
- (void)replaceCoordinatesInRange:(NSRange)range
withCoordinates:
(nonnull const CLLocationCoordinate2D *)coords;
Swift
func replaceCoordinates(in range: NSRange, withCoordinates coords: UnsafePointer<CLLocationCoordinate2D>)
Parameters
range
The range of vertices to replace. The location
field indicates the first vertex you are replacing, with 0
being the first vertex, 1
being the second vertex, and so on. The length
field indicates the number of vertices to replace.
coords
The array of coordinates defining part of the shape. The data in this array is copied to the shape’s coordinates
property.
-replaceCoordinatesInRange:withCoordinates:count:
Replaces the vertices at the given range in the shape with the specified number of vertices from a given C array.
If the shape is currently visible on the map as an annotation, it is redrawn immediately. If the shape is part of an MGLShapeSource
object, you must explicitly set the MGLShapeSource.shape
property in order for any style layers that use the source to be redrawn.
If count
is greater than the length
field of range
, some vertices will effectively be inserted into the shape. On the other hand, if count
is less than the length
field of range
, some vertices will effectively be removed.
If range
extends beyond the shape’s coordinates
property, an NSRangeException
is raised. If you want to append new vertices to the shape, use the -appendCoordinates:count:
method.
Declaration
Objective-C
- (void)replaceCoordinatesInRange:(NSRange)range
withCoordinates:(nonnull const CLLocationCoordinate2D *)coords
count:(NSUInteger)count;
Swift
func replaceCoordinates(in range: NSRange, withCoordinates coords: UnsafePointer<CLLocationCoordinate2D>, count: UInt)
Parameters
range
The range of vertices to replace. The location
field indicates the first vertex you are replacing, with 0
being the first vertex, 1
being the second vertex, and so on. The length
field indicates the number of vertices to replace.
coords
The array of coordinates defining part of the shape. The data in this array is copied to the shape’s coordinates
property.
count
The number of coordinates from the coords
array to insert in place of the coordinates in range
. The sum of range
’s length and this count must not exceed the number of items currently in the coordinates
property.
-removeCoordinatesInRange:
Removes the vertices at the given range from the shape.
If the shape is currently visible on the map as an annotation, it is redrawn immediately. If the shape is part of an MGLShapeSource
object, you must explicitly set the MGLShapeSource.shape
property in order for any style layers that use the source to be redrawn.
If range
extends beyond the shape’s coordinates
property, an NSRangeException
is raised.
Declaration
Objective-C
- (void)removeCoordinatesInRange:(NSRange)range;
Swift
func removeCoordinates(in range: NSRange)
Parameters
range
The range of vertices to remove. The location
field indicates the first vertex you are removing, with 0
being the first vertex, 1
being the second vertex, and so on. The length
field indicates the number of vertices to remove.
iOS SDK
Examples
SDK JS Reference
- Annotations
- Appendices
- NSExpression(MGLAdditions)
- NSValue(MGLAdditions)
- NSValue(MGLCircleStyleLayerAdditions)
- NSValue(MGLFillExtrusionStyleLayerAdditions)
- NSValue(MGLFillStyleLayerAdditions)
- NSValue(MGLHillshadeStyleLayerAdditions)
- NSValue(MGLLineStyleLayerAdditions)
- NSValue(MGLRasterStyleLayerAdditions)
- NSValue(MGLSymbolStyleLayerAdditions)
- MGLAccountManager
- MGLAnnotationImage
- MGLAnnotationView
- MGLAttributedExpression
- MGLAttributionInfo
- MGLBackgroundStyleLayer
- MGLCircleStyleLayer
- MGLClockDirectionFormatter
- MGLCompassButton
- MGLCompassDirectionFormatter
- MGLComputedShapeSource
- MGLCoordinateFormatter
- MGLDistanceFormatter
- MGLFillExtrusionStyleLayer
- MGLFillStyleLayer
- MGLForegroundStyleLayer
- MGLHeatmapStyleLayer
- MGLHillshadeStyleLayer
- MGLImageSource
- MGLLight
- MGLLineStyleLayer
- MGLLoggingConfiguration
- MGLMapCamera
- MGLMapSnapshot
- MGLMapSnapshotOptions
- MGLMapSnapshotOverlay
- MGLMapSnapshotter
- MGLMapView
- MGLMultiPoint
- MGLMultiPolygon
- MGLMultiPolyline
- MGLNetworkConfiguration
- MGLOfflinePack
- MGLOfflineStorage
- MGLPointAnnotation
- MGLPointCollection
- MGLPolygon
- MGLPolyline
- MGLRasterStyleLayer
- MGLRasterTileSource
- MGLShape
- MGLShapeCollection
- MGLShapeOfflineRegion
- MGLShapeSource
- MGLSource
- MGLStyle
- MGLStyleLayer
- MGLSymbolStyleLayer
- MGLTilePyramidOfflineRegion
- MGLTileSource
- MGLUserLocation
- MGLUserLocationAnnotationView
- MGLUserLocationAnnotationViewStyle
- MGLVectorStyleLayer
- MGLVectorTileSource
- MGLAnnotationVerticalAlignment
- MGLAnnotationViewDragState
- MGLAttributionInfoStyle
- MGLCirclePitchAlignment
- MGLCircleScaleAlignment
- MGLCircleTranslationAnchor
- MGLDEMEncoding
- MGLErrorCode
- MGLFillExtrusionTranslationAnchor
- MGLFillTranslationAnchor
- MGLHillshadeIlluminationAnchor
- MGLIconAnchor
- MGLIconPitchAlignment
- MGLIconRotationAlignment
- MGLIconTextFit
- MGLIconTranslationAnchor
- MGLLightAnchor
- MGLLineCap
- MGLLineJoin
- MGLLineTranslationAnchor
- MGLLoggingLevel
- MGLMapDebugMaskOptions
- MGLOfflinePackState
- MGLOrnamentPosition
- MGLOrnamentVisibility
- MGLRasterResamplingMode
- MGLResourceKind
- MGLSymbolPlacement
- MGLSymbolZOrder
- MGLTextAnchor
- MGLTextJustification
- MGLTextPitchAlignment
- MGLTextRotationAlignment
- MGLTextTransform
- MGLTextTranslationAnchor
- MGLTextWritingMode
- MGLTileCoordinateSystem
- MGLUserTrackingMode
- Formatters
- Geometry
- Location Updates
- Maps
- Offline Maps
- Other Categories
- Other Classes
- Other Constants
- Other Enumerations
- Other Functions
- Other Protocols
- Other Structures
- Other Type Definitions
- Primitive Shapes
- MGLAnnotation
- MGLCalloutView
- MGLCalloutViewDelegate
- MGLCluster
- MGLComputedShapeSourceDataSource
- MGLFeature
- MGLLocationManager
- MGLLocationManagerDelegate
- MGLMapSnapshotterDelegate
- MGLMapViewDelegate
- MGLOfflineRegion
- MGLOfflineStorageDelegate
- MGLOverlay
- MGLStylable
- MGLCoordinateBounds
- MGLCoordinateQuad
- MGLCoordinateSpan
- MGLOfflinePackProgress
- MGLSphericalPosition
- MGLTransition
- Style Content
- Style Layers
- Style Primitives
- Styling the Map
- MGLCoordinateBounds
- MGLCoordinateQuad
- MGLCoordinateSpan
- MGLOfflinePackProgress
- MGLSphericalPosition
- MGLTransition
- User Interaction
- Customizing Fonts
- Information for Style Authors
- Gesture Recognizers
- Info.plist Keys
- Migrating to Expressions
- Predicates and expressions
- Tile URL Templates
- Working with GeoJSON Data