MGLComputedShapeSource
@interface MGLComputedShapeSource : MGLSource
MGLComputedShapeSource
is a map content source that supplies vector shapes, one tile at a time, to be shown on the map on demand. You implement a class conforming to the MGLComputedShapeSourceDataSource
protocol that returns instances of MGLShape
or MGLFeature
, then add a computed shape source to an MGLStyle
object along with an MGLVectorStyleLayer
object. The vector style layer defines the appearance of any content supplied by the computed shape source.
MGLComputedShapeSource
is similar to MGLShapeSource
but is optimized for data sets that change dynamically or are too large to fit completely in memory. It is also useful for data that is divided into tiles in a format other than Vector Tiles. For GeoJSON data, use the MGLShapeSource
class. For static tiles or Vector Tiles, use the MGLVectorTileSource
class.
You can add and remove sources dynamically using methods such as -[MGLStyle addSource:]
and -[MGLStyle sourceWithIdentifier:]
. This class cannot be represented in a style JSON file; you must add it ot the style at runtime.
-initWithIdentifier:options:
Returns a custom shape data source initialized with an identifier, and a dictionary of options for the source according to the style specification.
This class supports the following options: MGLShapeSourceOptionMinimumZoomLevel
, MGLShapeSourceOptionMaximumZoomLevel
, MGLShapeSourceOptionBuffer
, MGLShapeSourceOptionSimplificationTolerance
, MGLShapeSourceOptionWrapsCoordinates
, and MGLShapeSourceOptionClipsCoordinates
. Shapes provided by a computed shape source cannot be clustered.
Declaration
Objective-C
- (nonnull instancetype)
initWithIdentifier:(nonnull NSString *)identifier
options:
(nullable NSDictionary<MGLShapeSourceOption, id> *)options;
Swift
init(identifier: String, options: [MGLShapeSourceOption : Any]? = nil)
Parameters
identifier
A string that uniquely identifies the source.
options
An NSDictionary
of options for this source.
-initWithIdentifier:dataSource:options:
Returns a custom shape data source initialized with an identifier, data source, and a dictionary of options for the source according to the style specification.
This class supports the following options: MGLShapeSourceOptionMinimumZoomLevel
, MGLShapeSourceOptionMaximumZoomLevel
, MGLShapeSourceOptionBuffer
, MGLShapeSourceOptionSimplificationTolerance
, MGLShapeSourceOptionWrapsCoordinates
, and MGLShapeSourceOptionClipsCoordinates
. Shapes provided by a computed shape source cannot be clustered.
Declaration
Objective-C
- (nonnull instancetype)
initWithIdentifier:(nonnull NSString *)identifier
dataSource:(nonnull id<MGLComputedShapeSourceDataSource>)dataSource
options:
(nullable NSDictionary<MGLShapeSourceOption, id> *)options;
Swift
convenience init(identifier: String, dataSource: MGLComputedShapeSourceDataSource, options: [MGLShapeSourceOption : Any]? = nil)
Parameters
identifier
A string that uniquely identifies the source.
options
An NSDictionary
of options for this source.
-invalidateBounds:
Invalidates all the features and properties intersecting with or contained in the specified bounds. New fetch requests will immediately be invoked on the MGLComputedShapeSourceDataSource
.
Declaration
Objective-C
- (void)invalidateBounds:(MGLCoordinateBounds)bounds;
Swift
func invalidateBounds(_ bounds: MGLCoordinateBounds)
Parameters
bounds
Coordinate bounds to invalidate.
-invalidateTileAtX:y:zoomLevel:
Invalidates all the feautres and properties of a given tile. A new fetch request will immediately be invoked on the MGLComputedShapeSourceDataSource
.
Declaration
Objective-C
- (void)invalidateTileAtX:(NSUInteger)x
y:(NSUInteger)y
zoomLevel:(NSUInteger)zoomLevel;
Swift
func invalidateTileAt(x: UInt, y: UInt, zoomLevel: UInt)
Parameters
x
Tile X coordinate.
y
Tile Y coordinate.
zoomLevel
Tile zoom level.
-setFeatures:inTileAtX:y:zoomLevel:
Set a new set of features for a tile. This method can be invkoed from background threads. For best performance, use this method only to update tiles that have already been requested through MGLComputedShapeSourceDataSource.
Declaration
Objective-C
- (void)setFeatures:(nonnull NSArray<MGLShape<MGLFeature> *> *)features
inTileAtX:(NSUInteger)x
y:(NSUInteger)y
zoomLevel:(NSUInteger)zoomLevel;
Parameters
features
Features for the tile.
x
Tile X coordinate.
y
Tile Y coordinate.
zoomLevel
Tile zoom level.
dataSource
An object that implements the MGLComputedShapeSourceDataSource
protocol that will be queried for tile data.
Declaration
Objective-C
@property (nonatomic, weak, readwrite, nullable)
id<MGLComputedShapeSourceDataSource>
dataSource;
Swift
weak var dataSource: MGLComputedShapeSourceDataSource? { get set }
requestQueue
A queue that calls to the data source will be made on.
Declaration
Objective-C
@property (nonatomic, readonly) NSOperationQueue *_Nonnull requestQueue;
Swift
var requestQueue: OperationQueue { get }
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