Style
public final class Style : StyleProtocol
Style provides access to the APIs used to dynamically modify the map’s style. Use it to read and write layers, sources, and images. Obtain the Style instance for a MapView via MapView.mapboxMap.style.
Important
Style should only be used from the main thread.-
Undocumented
Declaration
Swift
public weak var styleManager: StyleManager! { get }
-
Adds a
layerto the mapThrows
StyleErrorif there is a problem adding the givenlayerat the givenposition.Declaration
Swift
public func addLayer(_ layer: Layer, layerPosition: LayerPosition? = nil) throwsParameters
layerThe layer to apply on the map
layerPositionPosition to add the layer in the stack of layers on the map. Defaults to the top layer.
-
Adds a persistent
layerto the map. Persistent layers are valid acrossstylechanges.Throws
StyleErrorif there is a problem adding the persistent layer.Declaration
Swift
public func addPersistentLayer(_ layer: Layer, layerPosition: LayerPosition? = nil) throwsParameters
layerThe layer to apply on the map
layerPositionPosition to add the layer in the stack of layers on the map. Defaults to the top layer.
-
Moves a
layerto a new layer position in the style.Throws
StyleErroron failure, orNSErrorwith a _domain of “com.mapbox.bindgen”Declaration
Swift
public func moveLayer(withId id: String, to position: LayerPosition) throwsParameters
layerIdThe layer to move
positionPosition to move the layer in the stack of layers on the map. Defaults to the top layer.
-
Gets a
layerfrom the mapThrows
StyleErrorif there is a problem getting the layer data.Throws
TypeConversionErroris there is a problem decoding the layer data to the giventype.Declaration
Swift
public func layer<T>(withId id: String, type: T.Type) throws -> T where T : LayerParameters
idThe id of the layer to be fetched
typeThe type of the layer that will be fetched
Return Value
The fully formed
layerobject of type equal totype -
Gets a
layerfrom the map.This function is useful if you do not know the concrete type of the layer you are fetching, or don’t need to know for your situation.
Throws
Type conversion errors
Declaration
Swift
public func layer(withId id: String) throws -> LayerParameters
layerIDThe id of the layer to be fetched
Return Value
The fully formed
layerobject. -
Updates a
layerthat exists in thestylealreadyThrows
TypeConversionErrorif there is a problem getting a layer data.Throws
StyleErrorif there is a problem updating the layer.Throws
An error when executing
updateblock.Declaration
Swift
public func updateLayer<T>(withId id: String, type: T.Type, update: (inout T) throws -> Void) throws where T: LayerParameters
ididentifier of layer to update
typeType of the layer
updateClosure that mutates a layer passed to it
-
Adds a
sourceto the mapThrows
StyleErrorif there is a problem adding thesource.Declaration
Swift
public func addSource(_ source: Source, id: String) throwsParameters
sourceThe source to add to the map.
identifierA unique source identifier.
-
Retrieves a
sourcefrom the mapThrows
StyleErrorif there is a problem getting the source data.Throws
TypeConversionErrorif there is a problem decoding the source data to the giventype.Declaration
Swift
public func source<T>(withId id: String, type: T.Type) throws -> T where T : SourceParameters
idThe id of the source to retrieve
typeThe type of the source
Return Value
The fully formed
sourceobject of type equal totype. -
Retrieves a
sourcefrom the mapThis function is useful if you do not know the concrete type of the source you are fetching, or don’t need to know for your situation.
Throws
StyleErrorif there is a problem getting the source data.Declaration
Swift
public func source(withId id: String) throws -> SourceParameters
idThe id of the
sourceto retrieve.Return Value
The fully formed
sourceobject. -
Updates the
dataproperty of a givenGeoJSONSourcewith a new value conforming to theGeoJSONObjectprotocol.Throws
StyleErrorif there is a problem when updating GeoJSON source.Attention
This method is only effective with sources of
GeoJSONSourcetype, and cannot be used to update other source types.Declaration
Swift
public func updateGeoJSONSource(withId id: String, geoJSON: GeoJSONObject) throwsParameters
idThe identifier representing the GeoJSON source.
geoJSONThe new GeoJSON to be associated with the source data. i.e. a feature or feature collection.
-
trueif and only if the style JSON contents, the style specified sprite, and sources are all loaded, otherwise returnsfalse.Declaration
Swift
public var isLoaded: Bool { get } -
Get or set the style URI
Setting a new style is asynchronous. In order to get the result of this operation, listen to
MapEvents.styleDataLoaded,MapEvents.styleLoaded.Attention
This method should be called on the same thread where the MapboxMap object is initialized.Declaration
Swift
public var uri: StyleURI? { get set } -
Get or set the style via a JSON serialization string
Attention
This method should be called on the same thread where the MapboxMap object is initialized.Declaration
Swift
public var JSON: String { get set } -
The map
style‘s default camera, if any, or a default camera otherwise. The mapstyledefault camera is defined as follows:The
styledefault camera is re-evaluated when a newstyleis loaded. Values default to 0.0 if they are not defined in thestyle.Declaration
Swift
public var defaultCamera: CameraOptions { get } -
Get or set the map
style‘s transition options.By default, the style parser will attempt to read the style default transition, if any, falling back to a 0.3 s transition otherwise.
Overridden transitions are reset once a new style has been loaded. To customize the transition used when switching styles, set this property after
MapEvents.EventKind.styleDataLoadedwhereEvent.type == "style"and beforeMapEvents.EventKind.styleDataLoadedwhereEvent.type == "sprite"and whereEvent.type == "sources".See also
onNext(_:handler:)Declaration
Swift
public var transition: TransitionOptions { get set }
-
Adds a new style layer given its JSON properties
Runtime style layers are valid until they are either removed or a new style is loaded.
See
See Also: https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func addLayer(with properties: [String : Any], layerPosition: LayerPosition?) throwsParameters
propertiesA JSON dictionary of style layer properties.
layerPositionPosition to add the layer in the stack of layers on the map. Defaults to the top layer.
-
Adds a new persistent style layer given its JSON properties
Persistent style layers remain valid across style reloads.
Throws
An error describing why the operation was unsuccessful
Declaration
Swift
public func addPersistentLayer(with properties: [String : Any], layerPosition: LayerPosition?) throwsParameters
propertiesA JSON dictionary of style layer properties
layerPositionPosition to add the layer in the stack of layers on the map. Defaults to the top layer.
-
Returns
trueif the id passed in is associated to a persistent layerDeclaration
Swift
public func isPersistentLayer(id: String) throws -> BoolParameters
idThe layer identifier to test
-
Adds a new persistent style custom layer.
Persistent style layers are valid across style reloads.
See
See Also: https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func addPersistentCustomLayer(withId id: String, layerHost: CustomLayerHost, layerPosition: LayerPosition?) throwsParameters
idStyle layer id.
layerHostStyle custom layer host.
layerPositionPosition to add the layer in the stack of layers on the map. Defaults to the top layer.
-
Adds a new style custom layer.
Runtime style layers are valid until they are either removed or a new style is loaded.
See
See Also: https://docs.mapbox.com/mapbox-gl-js/style-spec/#layers
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func addCustomLayer(withId id: String, layerHost: CustomLayerHost, layerPosition: LayerPosition?) throwsParameters
idStyle layer id.
layerHostStyle custom layer host.
layerPositionPosition to add the layer in the stack of layers on the map. Defaults to the top layer.
-
Removes an existing style layer
Runtime style layers are valid until they are either removed or a new style is loaded.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func removeLayer(withId id: String) throwsParameters
idIdentifier of the style layer to remove.
-
Checks whether a given style layer exists.
Runtime style layers are valid until they are either removed or a new style is loaded.
Declaration
Swift
public func layerExists(withId id: String) -> BoolParameters
idStyle layer identifier.
Return Value
trueif the given style layer exists,falseotherwise. -
The ordered list of the current style layers’ identifiers and types
Declaration
Swift
public var allLayerIdentifiers: [LayerInfo] { get }
-
Gets the value of style layer property.
Declaration
Swift
public func layerPropertyValue(for layerId: String, property: String) -> AnyParameters
layerIdStyle layer identifier.
propertyStyle layer property name.
Return Value
The value of the property in the layer with layerId.
-
Gets the value of style layer property.
Declaration
Swift
public func layerProperty(for layerId: String, property: String) -> StylePropertyValueParameters
layerIdStyle layer identifier.
propertyStyle layer property name.
Return Value
The value of the property in the layer with layerId.
-
Sets a JSON value to a style layer property.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func setLayerProperty(for layerId: String, property: String, value: Any) throwsParameters
layerIdStyle layer identifier.
propertyStyle layer property name.
valueStyle layer property value.
-
Gets the default value of style layer property.
Declaration
Swift
public static func layerPropertyDefaultValue(for layerType: LayerType, property: String) -> StylePropertyValueParameters
layerTypeStyle layer type.
propertyStyle layer property name.
Return Value
The default value of the property for the layers with type layerType.
-
Gets the properties for a style layer.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func layerProperties(for layerId: String) throws -> [String : Any]Parameters
layerIdlayer id.
Return Value
JSON dictionary representing the layer properties
-
Sets style layer properties.
This method can be used to perform batch update for a style layer properties. The structure of a provided
propertiesvalue must conform to the format for a corresponding layer type.Modification of a layer identifier and/or layer type is not allowed.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func setLayerProperties(for layerId: String, properties: [String : Any]) throwsParameters
layerIdStyle layer identifier.
propertiesJSON dictionary representing the updated layer properties.
-
Adds a new style source.
See
See Also: https://docs.mapbox.com/mapbox-gl-js/style-spec/#sources
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func addSource(withId id: String, properties: [String : Any]) throwsParameters
idAn identifier for the style source.
propertiesA JSON dictionary of style source properties.
-
Removes an existing style source.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func removeSource(withId id: String) throwsParameters
idIdentifier of the style source to remove.
-
Checks whether a given style source exists.
Declaration
Swift
public func sourceExists(withId id: String) -> BoolParameters
idStyle source identifier.
Return Value
trueif the given source exists,falseotherwise. -
The ordered list of the current style sources’ identifiers and types. Identifiers for custom vector sources will not be included
Declaration
Swift
public var allSourceIdentifiers: [SourceInfo] { get }
-
Gets the value of style source property.
Declaration
Swift
public func sourceProperty(for sourceId: String, property: String) -> StylePropertyValueParameters
sourceIdStyle source identifier.
propertyStyle source property name.
Return Value
The value of the property in the source with sourceId.
-
Sets a value to a style source property.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func setSourceProperty(for sourceId: String, property: String, value: Any) throwsParameters
sourceIdStyle source identifier.
propertyStyle source property name.
valueStyle source property value (JSON value)
-
Gets style source properties.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func sourceProperties(for sourceId: String) throws -> [String : Any]Parameters
sourceIdStyle source identifier
Return Value
JSON dictionary representing the layer properties
-
Sets style source properties.
This method can be used to perform batch update for a style source properties. The structure of a provided
propertiesvalue must conform to the format for a corresponding source type. Modification of a source type is not allowed.Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func setSourceProperties(for sourceId: String, properties: [String : Any]) throwsParameters
sourceIdStyle source identifier
propertiesA JSON dictionary of Style source properties
-
Gets the default value of style source property.
Declaration
Swift
public static func sourcePropertyDefaultValue(for sourceType: String, property: String) -> StylePropertyValueParameters
sourceTypeStyle source type.
propertyStyle source property name.
Return Value
The default value for the named property for the sources with type sourceType.
-
Updates the image of an image style source.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func updateImageSource(withId id: String, image: UIImage) throwsParameters
idStyle source identifier.
imageUIImage
-
Adds an image to be used in the style.
This API can also be used for updating an image. If the image id was already added, it gets replaced by the new image.
The image can be used in
icon-image,fill-pattern, andline-pattern.For more information on how
stretchXandstretchYparameters affect image stretching see this Mapbox GL-JS example.Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func addImage(_ image: UIImage, id: String, sdf: Bool = false, stretchX: [ImageStretches], stretchY: [ImageStretches], content: ImageContent? = nil) throwsParameters
imageImage to add.
idID of the image.
sdfOption to treat whether image is SDF(signed distance field) or not. Setting this to
trueallows template images to be recolored. The default value isfalse.stretchXAn array of two-element arrays, consisting of two numbers that represent the from position and the to position of areas that can be stretched horizontally.
stretchYAn array of two-element arrays, consisting of two numbers that represent the from position and the to position of areas that can be stretched vertically.
contentAn array of four numbers, with the first two specifying the left, top corner, and the last two specifying the right, bottom corner. If present, and if the icon uses icon-text-fit, the symbol’s text will be fit inside the content box.
-
Adds an image to be used in the style.
If the image has non-zero
UIImage.capInsetsit will be stretched accordingly, regardless of the value inUIImage.resizingMode.Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func addImage(_ image: UIImage, id: String, sdf: Bool = false, contentInsets: UIEdgeInsets = .zero) throwsParameters
imageImage to add.
idID of the image.
sdfOption to treat whether image is SDF(signed distance field) or not. Setting this to
trueallows template images to be recolored. The default value isfalse.contentInsetsThe distances the edges of content are inset from the image rectangle. If present, and if the icon uses icon-text-fit, the symbol’s text will be fit inside the content box.
-
Removes an image from the style.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func removeImage(withId id: String) throwsParameters
idID of the image to remove.
-
Checks whether an image exists.
Declaration
Swift
public func imageExists(withId id: String) -> BoolParameters
idThe identifier of the image.
Return Value
trueif the given image exists,falseotherwise. -
Get an image from the style.
Declaration
Swift
public func image(withId id: String) -> UIImage?Parameters
idID of the image.
Return Value
UIImage representing the data associated with the given ID, or nil if no image is associated with that ID.
-
Sets the style global light source properties.
See
See Also: https://docs.mapbox.com/mapbox-gl-js/style-spec/#light
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func setLight(properties: [String : Any]) throwsParameters
propertiesA dictionary of style light properties values, with their names as key.
-
Sets a value to the style light property.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func setLightProperty(_ property: String, value: Any) throwsParameters
propertyStyle light property name.
valueStyle light property value.
-
Gets the value of a style light property.
Declaration
Swift
public func lightProperty(_ property: String) -> AnyParameters
propertyStyle light property name.
Return Value
Style light property value.
-
Gets the value of a style light property.
Declaration
Swift
public func lightProperty(_ property: String) -> StylePropertyValueParameters
propertyStyle light property name.
Return Value
Style light property value.
-
Removes terrain from style if it was set.
Declaration
Swift
public func removeTerrain() -
Sets the style global terrain source properties.
See
See Also: https://docs.mapbox.com/mapbox-gl-js/style-spec/#terrain
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func setTerrain(properties: [String : Any]) throwsParameters
propertiesA dictionary of style terrain properties values, with their names as key.
-
Sets a value to the named style terrain property.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func setTerrainProperty(_ property: String, value: Any) throwsParameters
propertyStyle terrain property name.
valueStyle terrain property value.
-
Gets the value of a style terrain property.
Declaration
Swift
public func terrainProperty(_ property: String) -> AnyParameters
propertyStyle terrain property name.
Return Value
Style terrain property value.
-
Gets the value of a style terrain property.
Declaration
Swift
public func terrainProperty(_ property: String) -> StylePropertyValueParameters
propertyStyle terrain property name.
Return Value
Style terrain property value.
-
Set the atmosphere of the style
Declaration
Swift
public func setAtmosphere(_ atmosphere: Atmosphere) throwsParameters
atmosphereAtmosphereobject describing the fog, space and stars. -
Remove the atmosphere of the style. No fog, space or stars would be rendered.
Declaration
Swift
public func removeAtmosphere() throws -
Set an explicit atmosphere properties
See
See Also style-spec/fog
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func setAtmosphere(properties: [String : Any]) throwsParameters
propertiesA dictionary of style fog (aka atmosphere) properties values, with their names as key.
-
Sets the value of a style atmosphere property.
See
See Also style-spec/fog
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func setAtmosphereProperty(_ property: String, value: Any) throwsParameters
propertyStyle atmosphere property name.
-
Gets the value of a style atmosphere property.
See
See Also: https://docs.mapbox.com/mapbox-gl-js/style-spec/fog/
Declaration
Swift
public func atmosphereProperty(_ property: String) -> StylePropertyValueParameters
propertyStyle atmosphere property name.
Return Value
Style atmosphere property value.
-
Adds a custom geometry to be used in the style.
To add the data, implement the fetchTileFunction callback in the options and call
setCustomGeometrySourceTileData.Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func addCustomGeometrySource(withId id: String, options: CustomGeometrySourceOptions) throwsParameters
idStyle source identifier
optionsSettings for the custom geometry
-
Set tile data of a custom geometry.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func setCustomGeometrySourceTileData(forSourceId sourceId: String, tileId: CanonicalTileID, features: [Feature]) throwsParameters
sourceIdStyle source identifier
tileIdIdentifier of the tile
featuresAn array of features to add
-
Invalidate tile for provided custom geometry source.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func invalidateCustomGeometrySourceTile(forSourceId sourceId: String, tileId: CanonicalTileID) throwsParameters
sourceIdStyle source identifier
tileIdIdentifier of the tile
-
Invalidate region for provided custom geometry source.
Throws
An error describing why the operation was unsuccessful.
Declaration
Swift
public func invalidateCustomGeometrySourceRegion(forSourceId sourceId: String, bounds: CoordinateBounds) throwsParameters
sourceIdStyle source identifier
boundsCoordinate bounds.
-
This function creates an expression that will localize the
textFieldproperty of aSymbolLayerDeclaration
Swift
public func localizeLabels(into locale: Locale, forLayerIds layerIds: [String]? = nil) throwsParameters
localeThe
Localeto update the map tolayerIdsAn optional list of ids that need to be localized. If
nilis provided, all layers will be updated
-
Sets the projection.
Throws
StyleErrorif the projection could not be applied.Declaration
Swift
public func setProjection(_ projection: StyleProjection) throwsParameters
projectionThe
StyleProjectionto apply to the style. -
The current projection.
Declaration
Swift
public var projection: StyleProjection { get }
Style Class Reference