Package Exports
- ol-mapbox-style
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ol-mapbox-style) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ol-mapbox-style
Converts Mapbox Style objects for vector tile layers into OpenLayers style functions.
Getting started
To use a standalone build of ol-mapbox-style, just include 'dist/olms.js' on your HTML page. Otherwise just import the ol-mapbox-style module, like in the snippet below.
The code below creates a Mapbox Streets v7 layer with the bright v9 style:
import * as olms from 'ol-mapbox-style';
// OpenLayers imports from https://npmjs.com/package/ol
import tilegrid from 'ol/tilegrid';
import VectorTileLayer from 'ol/layer/vectortile';
import VectorTileSource from 'ol/source/vectortile';
import MVT from 'ol/format/MVT';
var key = 'Your Mapbox Access Token here';
var tileGrid = tilegrid.createXYZ({tileSize: 512, maxZoom: 22});
var layer = new VectorTileLayer({
source: new VectorTileSource({
attributions: '© <a href="https://www.mapbox.com/map-feedback/">Mapbox</a> ' +
'© <a href="http://www.openstreetmap.org/copyright">' +
'OpenStreetMap contributors</a>',
format: new MVT(),
tileGrid: tileGrid,
tilePixelRatio: 8,
url: 'http://{a-d}.tiles.mapbox.com/v4/mapbox.mapbox-streets-v7/' +
'{z}/{x}/{y}.vector.pbf?access_token=' + key
})
});
fetch('https://api.mapbox.com/styles/v1/mapbox/bright-v9?access_token=' + key).then(function(response) {
response.json().then(function(glStyle) {
glStyle.sprite = 'https://api.mapbox.com/styles/v1/mapbox/bright-v9/sprite?access_token=' + key;
olms.applyStyle(layer, glStyle, 'mapbox').then(function() {
// Style is ready to use - add the layer to your OpenLayers Map instance
map.addLayer(layer);
});
});
});Only commonly available system fonts and Google Fonts will automatically be available for text defined in the Mapbox Style object. It is the responsibility of the application to load other fonts.
To apply the properties of the Mapbox Style's background layer to the map, use the applyBackground function.
API
applyStyle
Applies a style function to an ol.layer.VectorTile with an
ol.source.VectorTile. The style function will render all layers from the
glStyle object that use the specified source, which needs to be a
"type": "vector" source.
Parameters
layerol.layer.VectorTile OpenLayers layer.glStyle(string | Object) Mapbox Style object.sourcestringsourcekey from the Mapbox Style object.
Returns Promise Promise which will be resolved when the style can be used for rendering.
applyBackground
Applies properties of the Mapbox Style's background layer to the map.
Parameters
mapol.Map OpenLayers Map. Must have atargetconfigured.glStyleObject Mapbox Style object.
Building the library
npm installThe resulting binary (olms.js) will be in the dist/ folder. To see the library in action, navigate to example/index.html.