-
DingiSource
is an abstract base class for map content sources. A map content source supplies content to be shown on the map. A source is added to anDingiStyle
object along with anDingiForegroundStyleLayer
object. The foreground style layer defines the appearance of any content supplied by the source.Each source defined by the style JSON file is represented at runtime by an
DingiSource
object that you can use to refine the map’s content. You can also add and remove sources dynamically using methods such as-[DingiStyle addSource:]
and-[DingiStyle sourceWithIdentifier:]
.Create instances of
See moreDingiShapeSource
,DingiComputedShapeSource
,DingiImageSource
, and the concrete subclasses ofDingiTileSource
(DingiVectorTileSource
andDingiRasterTileSource
) in order to useDingiSource
’s properties and methods. Do not create instances ofDingiSource
directly, and do not create your own subclasses of this class.Declaration
Objective-C
@interface DingiSource : NSObject
Swift
class DingiSource : NSObject
-
DingiShapeSource
is a map content source that supplies vector shapes to be shown on the map. The shapes may be instances ofMGLShape
orDingiFeature
, or they may be defined by local or external GeoJSON code. A shape source is added to anDingiStyle
object along with anDingiVectorStyleLayer
object. The vector style layer defines the appearance of any content supplied by the shape source. You can update a shape source by setting itsshape
orURL
property.DingiShapeSource
is optimized for data sets that change dynamically and fit completely in memory. For large data sets that do not fit completely in memory, use theDingiComputedShapeSource
orDingiVectorTileSource
class.Each geojson source defined by the style JSON file is represented at runtime by an
DingiShapeSource
object that you can use to refine the map’s content and initialize new style layers. You can also add and remove sources dynamically using methods such as-[DingiStyle addSource:]
and-[DingiStyle sourceWithIdentifier:]
.Any vector style layer initialized with a shape source should have a
nil
value in itssourceLayerIdentifier
property.Example
See morevar coordinates: [CLLocationCoordinate2D] = [ CLLocationCoordinate2D(latitude: 37.77, longitude: -122.42), CLLocationCoordinate2D(latitude: 38.91, longitude: -77.04), ] let polyline = DingiPolylineFeature(coordinates: &coordinates, count: UInt(coordinates.count)) let source = DingiShapeSource(identifier: "lines", features: [polyline], options: nil) mapView.style?.addSource(source)
Declaration
Objective-C
@interface DingiShapeSource : DingiSource
Swift
class DingiShapeSource : DingiSource
-
DingiComputedShapeSource
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 theDingiComputedShapeSourceDataSource
protocol that returns instances ofDingiShape
orDingiFeature
, then add a computed shape source to anDingiStyle
object along with anDingiVectorStyleLayer
object. The vector style layer defines the appearance of any content supplied by the computed shape source.DingiComputedShapeSource
is similar toDingiShapeSource
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 Mapbox Vector Tiles. For GeoJSON data, use theDingiShapeSource
class. For static tiles or Mapbox Vector Tiles, use theDingiVectorTileSource
class.You can add and remove sources dynamically using methods such as
See more-[DingiStyle addSource:]
and-[DingiStyle sourceWithIdentifier:]
. This class cannot be represented in a style JSON file; you must add it ot the style at runtime.Declaration
Objective-C
@interface DingiComputedShapeSource : DingiSource
Swift
class DingiComputedShapeSource : DingiSource
-
DingiTileSource
is a map content source that supplies map tiles to be shown on the map. The location of and metadata about the tiles are defined either by an option dictionary or by an external file that conforms to the TileJSON specification. A tile source is added to anDingiStyle
object along with one or moreDingiRasterStyleLayer
orDingiVectorStyleLayer
objects. Use a style layer to control the appearance of content supplied by the tile source.A tile source is also known as a tile set. To learn about the structure of a Mapbox-hosted tile set, view it in Mapbox Studio’s Tilesets editor.
Create instances of
See moreDingiRasterTileSource
andDingiVectorTileSource
in order to useDingiTileSource
‘s properties and methods. Do not create instances ofDingiTileSource
directly, and do not create your own subclasses of this class.Declaration
Objective-C
@interface DingiTileSource : DingiSource
Swift
class DingiTileSource : DingiSource
-
DingiRasterTileSource
is a map content source that supplies raster image tiles to be shown on the map. The location of and metadata about the tiles are defined either by an option dictionary or by an external file that conforms to the TileJSON specification. A raster tile source is added to anDingiStyle
object along with one or moreDingiRasterStyleLayer
objects. Use a raster style layer to control the appearance of content supplied by the raster tile source.Each
raster
source defined by the style JSON file is represented at runtime by anDingiRasterTileSource
object that you can use to initialize new style layers. You can also add and remove sources dynamically using methods such as-[DingiStyle addSource:]
and-[DingiStyle sourceWithIdentifier:]
.Example
See morelet source = DingiRasterTileSource(identifier: "clouds", tileURLTemplates: ["https://example.com/raster-tiles/{z}/{x}/{y}.png"], options: [ .minimumZoomLevel: 9, .maximumZoomLevel: 16, .tileSize: 512, .attributionInfos: [ DingiAttributionInfo(title: NSAttributedString(string: "© Mapbox"), url: URL(string: "https://mapbox.com")) ] ]) mapView.style?.addSource(source)
Declaration
Objective-C
@interface DingiRasterTileSource : DingiTileSource
Swift
class DingiRasterTileSource : DingiTileSource
-
DingiRasterDEMSource
is a map content source that supplies rasterized digital elevation model (DEM) tiles to be shown on the map. The location of and metadata about the tiles are defined either by an option dictionary or by an external file that conforms to the TileJSON specification. A raster DEM source is added to anDingiStyle
object along with one or moreDingiHillshadeStyleLayer
objects. Use a hillshade style layer to control the appearance of content supplied by the raster DEM source.Each
raster-dem
source defined by the style JSON file is represented at runtime by anDingiRasterDEMSource
object that you can use to initialize new style layers. You can also add and remove sources dynamically using methods such as-[DingiStyle addSource:]
and-[DingiStyle sourceWithIdentifier:]
.Currently, raster DEM sources only support the format used by Mapbox Terrain-RGB.
Example
let terrainRGBURL = URL(string: "mapbox://mapbox.terrain-rgb")! let source = DingiRasterDEMSource(identifier: "hills", configurationURL: terrainRGBURL) mapView.style?.addSource(source)
Declaration
Objective-C
@interface DingiRasterDEMSource : DingiRasterTileSource
Swift
class DingiRasterDEMSource : DingiRasterTileSource
-
DingiVectorTileSource
is a map content source that supplies tiled vector data in Mapbox Vector Tile format to be shown on the map. The location of and metadata about the tiles are defined either by an option dictionary or by an external file that conforms to the TileJSON specification. A vector tile source is added to anDingiStyle
object along with one or moreDingiVectorStyleLayer
objects. A vector style layer defines the appearance of any content supplied by the vector tile source.DingiVectorTileSource
is optimized for data sets that are too large to fit completely in memory, such as vector tile sets or data sets managed in Mapbox Studio. For GeoJSON data, use theDingiShapeSource
class. For tiled data that changes dynamically, theDingiComputedShapeSource
class may be a suitable alternative.Each
vector
source defined by the style JSON file is represented at runtime by anDingiVectorTileSource
object that you can use to initialize new style layers. You can also add and remove sources dynamically using methods such as-[DingiStyle addSource:]
and-[DingiStyle sourceWithIdentifier:]
.Within each vector tile, each geometric coordinate must lie between −1 × extent and (extent × 2) − 1, inclusive. Any vector style layer initialized with a vector tile source must have a non-
nil
value in itssourceLayerIdentifier
property.Commonly used vector tile sources include Mapbox Streets, Mapbox Terrain, and Mapbox Traffic.
Example
See morelet source = DingiVectorTileSource(identifier: "pois", tileURLTemplates: ["https://example.com/vector-tiles/{z}/{x}/{y}.mvt"], options: [ .minimumZoomLevel: 9, .maximumZoomLevel: 16, .attributionInfos: [ DingiAttributionInfo(title: NSAttributedString(string: "© Mapbox"), url: URL(string: "https://mapbox.com")) ] ]) mapView.style?.addSource(source)
Declaration
Objective-C
@interface DingiVectorTileSource : DingiTileSource
Swift
class DingiVectorTileSource : DingiTileSource
-
DingiImageSource
is a content source that is used for a georeferenced raster image to be shown on the map. The georeferenced image scales and rotates as the user zooms and rotates the map. Images may also be used as icons or patterns in a style layer. To register an image for use as an icon or pattern, use the-[DingiStyle setImage:forName:]
method. To configure a point annotation’s image, use theDingiAnnotationImage
class.The geographic location of the raster image content, supplied with
DingiCoordinateQuad
, can be non-axis aligned.DingiImageSource
supports raster content fromNSURL
,NSImage
(macOS), orUIImage
(iOS). An image source is added to anDingiStyle
object along with one or moreDingiRasterStyleLayer
objects. Use a raster style layer to control the appearance of content supplied by the image source.Each
image
source defined by the style JSON file is represented at runtime by anDingiImageSource
object that you can use to initialize new style layers. You can also add and remove sources dynamically using methods such as-[DingiStyle addSource:]
and-[DingiStyle sourceWithIdentifier:]
.Example
See morelet coordinates = DingiCoordinateQuad( topLeft: CLLocationCoordinate2D(latitude: 46.437, longitude: -80.425), bottomLeft: CLLocationCoordinate2D(latitude: 37.936, longitude: -80.425), bottomRight: CLLocationCoordinate2D(latitude: 37.936, longitude: -71.516), topRight: CLLocationCoordinate2D(latitude: 46.437, longitude: -71.516)) let source = DingiImageSource(identifier: "radar", coordinateQuad: coordinates, url: URL(string: "https://www.mapbox.com/mapbox-gl-js/assets/radar.gif")!) mapView.style?.addSource(source)
Declaration
Objective-C
@interface DingiImageSource : DingiSource
Swift
class DingiImageSource : DingiSource