A Mapbox style is a document that defines the visual appearance of a map: what data to draw, the order to draw it in, and how to style the data when drawing it. A style document is a JSON object with specific root level and nested properties. This specification defines and describes these properties.
This is the core representation of a Mapbox style. It has the following keys:
These define what is actually rendered on screen. See the Mapbox.Layer module on how to configure these.
These define the data sources that feed the Layers. See the Mapbox.Source module for more.
These are all optional attributes.
All the other keys are values defined below.
A simple record to be used, when a style is read from a json file.
use decodeMiscDef json to read out default values, you can reset them by
setting them to Nothing use afterwards miscDefToList to generate a misc-list
to be used in your StyleDef.
The global light source.
anchorWhether extruded geometries are lit relative to the map or viewport.
positionPosition of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when the anchor is set to viewport corresponds to the top of the viewport, or 0° when anchor is set to map corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).
colorColor tint for lighting extruded geometries.
intensityIntensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.
A decent default light.
A transition property controls timing for the interpolation between a transitionable style property's previous value and new value.
durationTime (in ms) allotted for transitions to complete.
delayLength of time (in ms) before a transition begins.
The defaults for a transition
A base URL for retrieving the sprite image and metadata. The extensions .png, .json and scale factor @2x.png will be automatically appended. This property is required if any layer uses the backgroundPattern, fillPattern, linePattern, fillExtrusionPattern, or iconImage properties.
A URL template for loading signed-distance-field glyph sets in PBF format. The URL must include {fontstack} and {range} tokens. This property is required if any layer uses the textField layout property.
Default map center in longitude and latitude. The style center will be used only if the map has not been positioned by other means (e.g. map options or user interaction).
Default zoom level. The style zoom will be used only if the map has not been positioned by other means (e.g. map options or user interaction).
Default bearing, in degrees. The bearing is the compass direction that is "up"; for example, a bearing of 90° orients the map so that east is up. This value will be used only if the map has not been positioned by other means (e.g. map options or user interaction).
Default pitch, in degrees. Zero is perpendicular to the surface, for a look straight down at the map, while a greater value like 60 looks ahead towards the horizon. The style pitch will be used only if the map has not been positioned by other means (e.g. map options or user interaction).
Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'.
You can also use one of these predefined styles.
A mapbox style.
You can either create a style spec in Elm (for which the rest of this library is useful :) or load one from a remote URL.
To load a style from the Mapbox API, you can use a URL of the form
FromUrl "mapbox://styles/:owner/:style", where:owneris your Mapbox account name and:styleis the style ID.