Class: MapboxVectorLayer

ol/layer/MapboxVector~MapboxVectorLayer


import MapboxVectorLayer from 'ol/layer/MapboxVector';

A vector tile layer based on a Mapbox style that uses a single vector source. Configure the layer with the styleUrl and accessToken shown in Mapbox Studio's share panel. If the style uses more than one source, use the source property to choose a single vector source. If you want to render a subset of the layers in the style, use the layers property (all layers must share the same vector source). See the constructor options for more detail.

var map = new Map({
  view: new View({
    center: [0, 0],
    zoom: 1
  }),
  layers: [
    new MapboxVectorLayer({
      styleUrl: 'mapbox://styles/mapbox/bright-v9',
      accessToken: 'your-mapbox-access-token-here'
    })
  ],
  target: 'map'
});

On configuration or loading error, the layer will trigger an 'error' event. Listeners will receive an object with an error property that can be used to diagnose the problem.

new MapboxVectorLayer(options)

Name Type Description
options

Options.

Name Type Description
styleUrl string

The URL of the Mapbox style object to use for this layer. For a style created with Mapbox Studio and hosted on Mapbox, this will look like 'mapbox://styles/you/your-style'.

accessToken string | undefined

The access token for your Mapbox style. This has to be provided for mapbox:// style urls. For https:// and other urls, any access key must be the last query parameter of the style url.

source string | undefined

If your style uses more than one source, you need to use either the source property or the layers property to limit rendering to a single vector source. The source property corresponds to the id of a vector source in your Mapbox style.

layers Array.<string> | undefined

Limit rendering to the list of included layers. All layers must share the same vector source. If your style uses more than one source, you need to use either the source property or the layers property to limit rendering to a single vector source.

declutter boolean (defaults to true)

Declutter images and text. Decluttering is applied to all image and text styles of all Vector and VectorTile layers that have set this to true. The priority is defined by the z-index of the layer, the zIndex of the style and the render order of features. Higher z-index means higher priority. Within the same z-index, a feature rendered before another has higher priority.

As an optimization decluttered features from layers with the same className are rendered above the fill and stroke styles of all of those layers regardless of z-index. To opt out of this behavior and place declutterd features with their own layer configure the layer with a className other than ol-layer.

background module:ol/layer/Base~BackgroundColor | false | undefined

Background color for the layer. If not specified, the background from the Mapbox style object will be used. Set to false to prevent the Mapbox style's background from being used.

className string (defaults to 'ol-layer')

A CSS class name to set to the layer element.

opacity number (defaults to 1)

Opacity (0, 1).

visible boolean (defaults to true)

Visibility.

extent module:ol/extent~Extent | undefined

The bounding extent for layer rendering. The layer will not be rendered outside of this extent.

zIndex number | undefined

The z-index for layer rendering. At rendering time, the layers will be ordered, first by Z-index and then by position. When undefined, a zIndex of 0 is assumed for layers that are added to the map's layers collection, or Infinity when the layer's setMap() method was used.

minResolution number | undefined

The minimum resolution (inclusive) at which this layer will be visible.

maxResolution number | undefined

The maximum resolution (exclusive) below which this layer will be visible. If neither maxResolution nor minZoom are defined, the layer's maxResolution will match the style source's minzoom.

minZoom number | undefined

The minimum view zoom level (exclusive) above which this layer will be visible. If neither maxResolution nor minZoom are defined, the layer's minZoom will match the style source's minzoom.

maxZoom number | undefined

The maximum view zoom level (inclusive) at which this layer will be visible.

renderOrder module:ol/render~OrderFunction | undefined

Render order. Function to be used when sorting features before rendering. By default features are drawn in the order that they are created. Use null to avoid the sort, but get an undefined draw order.

renderBuffer number (defaults to 100)

The buffer in pixels around the tile extent used by the renderer when getting features from the vector tile for the rendering or hit-detection. Recommended value: Vector tiles are usually generated with a buffer, so this value should match the largest possible buffer of the used tiles. It should be at least the size of the largest point symbol or line width.

renderMode module:ol/layer/VectorTileRenderType | string (defaults to 'hybrid')

Render mode for vector tiles:

  • 'hybrid': Polygon and line elements are rendered as images, so pixels are scaled during zoom animations. Point symbols and texts are accurately rendered as vectors and can stay upright on rotated views.
  • 'vector': Everything is rendered as vectors. Use this mode for improved performance on vector tile layers with only a few rendered features (e.g. for highlighting a subset of features of another layer with the same source).
map module:ol/PluggableMap~PluggableMap | undefined

Sets the layer as overlay on a map. The map will not manage this layer in its layers collection, and the layer will be rendered on top. This is useful for temporary layers. The standard way to add a layer to a map and have it managed by the map is to use map.addLayer().

updateWhileAnimating boolean (defaults to false)

When set to true, feature batches will be recreated during animations. This means that no vectors will be shown clipped, but the setting will have a performance impact for large amounts of vector data. When set to false, batches will be recreated when no animation is active.

updateWhileInteracting boolean (defaults to false)

When set to true, feature batches will be recreated during interactions. See also updateWhileAnimating.

preload number (defaults to 0)

Preload. Load low-resolution tiles up to preload levels. 0 means no preloading.

useInterimTilesOnError boolean (defaults to true)

Use interim tiles on error.

properties Object.<string, *> | undefined

Arbitrary observable properties. Can be accessed with #get() and #set().

Fires:

Extends

Observable Properties

Name Type Settable ol/Object.ObjectEvent type Description
extent module:ol/extent~Extent | undefined yes change:extent

The layer extent.

maxResolution number yes change:maxresolution

The maximum resolution of the layer.

maxZoom number yes change:maxzoom

The maximum zoom level of the layer.

minResolution number yes change:minresolution

The minimum resolution of the layer.

minZoom number yes change:minzoom

The minimum zoom level of the layer.

opacity number yes change:opacity

The opacity of the layer.

preload number yes change:preload

The level to preload tiles up to.

source SourceType | null yes change:source

The layer source (or null if not yet set).

useInterimTilesOnError boolean yes change:useinterimtilesonerror

Use interim tiles on error.

visible boolean yes change:visible

The visibility of the layer.

zIndex number yes change:zindex

The Z-index of the layer.

Methods

Increases the revision counter and dispatches a 'change' event.

dispatchEvent(event){boolean|undefined} inherited

Dispatches an event and calls all listeners listening for events of this type. The event parameter can either be a string or an Object with a type property.

Name Type Description
event module:ol/events/Event~BaseEvent | string

Event object.

Returns:
false if anyone called preventDefault on the event object or if any of the listeners returned false.

Gets a value.

Name Type Description
key string

Key name.

Returns:
Value.
Returns:
Background color.

Return the extent of the layer or undefined if it will be visible regardless of extent.

Returns:
The layer extent.

getFeatures(pixel){Promise.<Array.<module:ol/Feature~Feature>>} inherited

Get the topmost feature that intersects the given pixel on the viewport. Returns a promise that resolves with an array of features. The array will either contain the topmost feature when a hit was detected, or it will be empty.

The hit detection algorithm used for this method is optimized for performance, but is less accurate than the one used in map.getFeaturesAtPixel(): Text is not considered, and icons are only represented by their bounding box instead of the exact image.

Name Type Description
pixel module:ol/pixel~Pixel

Pixel.

Returns:
Promise that resolves with an array of features.

getKeys(){Array.<string>} inherited

Get a list of object property names.

Returns:
List of property names.

getMaxResolution(){number} inherited

Return the maximum resolution of the layer.

Returns:
The maximum resolution of the layer.

getMaxZoom(){number} inherited

Return the maximum zoom level of the layer.

Returns:
The maximum zoom level of the layer.

getMinResolution(){number} inherited

Return the minimum resolution of the layer.

Returns:
The minimum resolution of the layer.

getMinZoom(){number} inherited

Return the minimum zoom level of the layer.

Returns:
The minimum zoom level of the layer.

getOpacity(){number} inherited

Return the opacity of the layer (between 0 and 1).

Returns:
The opacity of the layer.

getPreload(){number} inherited

Return the level as number to which we will preload tiles up to.

Returns:
The level to preload tiles up to.

getProperties(){Object.<string, *>} inherited

Get an object of all property names and values.

Returns:
Object.

getRevision(){number} inherited

Get the version number for this object. Each time the object is modified, its version number will be incremented.

Returns:
Revision.

getSource(){SourceType|null} inherited

Get the layer source.

Returns:
The layer source (or null if not yet set).

Get the style for features. This returns whatever was passed to the style option at construction or to the setStyle method.

Returns:
Layer style.

Get the style function.

Returns:
Layer style function.

getUseInterimTilesOnError(){boolean} inherited

Whether we use interim tiles on error.

Returns:
Use interim tiles on error.

getVisible(){boolean} inherited

Return the visibility of the layer (true or false).

Returns:
The visibility of the layer.

getZIndex(){number} inherited

Return the Z-index of the layer, which is used to order layers before rendering. The default Z-index is 0.

Returns:
The Z-index of the layer.

Listen for a certain type of event.

Name Type Description
type string | Array.<string>

The event type or array of event types.

listener function

The listener function.

Returns:
Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

Listen once for a certain type of event.

Name Type Description
type string | Array.<string>

The event type or array of event types.

listener function

The listener function.

Returns:
Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

set(key, value, opt_silent) inherited

Sets a value.

Name Type Description
key string

Key name.

value *

Value.

silent boolean | undefined

Update without triggering an event.

setBackground(background) inherited

Name Type Description
background module:ol/layer/Base~BackgroundColor

Background color.

setExtent(extent) inherited

Set the extent at which the layer is visible. If undefined, the layer will be visible at all extents.

Name Type Description
extent module:ol/extent~Extent | undefined

The extent of the layer.

Sets the layer to be rendered on top of other layers on a map. The map will not manage this layer in its layers collection, and the callback in module:ol/Map~Map#forEachLayerAtPixel will receive null as layer. This is useful for temporary layers. To remove an unmanaged layer from the map, use #setMap(null).

To add the layer to a map and have it managed by the map, use module:ol/Map~Map#addLayer instead.

Name Type Description
map module:ol/PluggableMap~PluggableMap | null

Map.

setMaxResolution(maxResolution) inherited

Set the maximum resolution at which the layer is visible.

Name Type Description
maxResolution number

The maximum resolution of the layer.

setMaxZoom(maxZoom) inherited

Set the maximum zoom (exclusive) at which the layer is visible. Note that the zoom levels for layer visibility are based on the view zoom level, which may be different from a tile source zoom level.

Name Type Description
maxZoom number

The maximum zoom of the layer.

setMinResolution(minResolution) inherited

Set the minimum resolution at which the layer is visible.

Name Type Description
minResolution number

The minimum resolution of the layer.

setMinZoom(minZoom) inherited

Set the minimum zoom (inclusive) at which the layer is visible. Note that the zoom levels for layer visibility are based on the view zoom level, which may be different from a tile source zoom level.

Name Type Description
minZoom number

The minimum zoom of the layer.

setOpacity(opacity) inherited

Set the opacity of the layer, allowed values range from 0 to 1.

Name Type Description
opacity number

The opacity of the layer.

setPreload(preload) inherited

Set the level as number to which we will preload tiles up to.

Name Type Description
preload number

The level to preload tiles up to.

setProperties(values, opt_silent) inherited

Sets a collection of key-value pairs. Note that this changes any existing properties and adds new ones (it does not remove any existing properties).

Name Type Description
values Object.<string, *>

Values.

silent boolean | undefined

Update without triggering an event.

setSource(source) inherited

Set the layer source.

Name Type Description
source SourceType | null

The layer source.

setStyle(opt_style) inherited

Set the style for features. This can be a single style object, an array of styles, or a function that takes a feature and resolution and returns an array of styles. If set to null, the layer has no style (a null style), so only features that have their own styles will be rendered in the layer. Call setStyle() without arguments to reset to the default style. See module:ol/style/Style~Style for information on the default style.

Name Type Description
style module:ol/style/Style~StyleLike | null | undefined

Layer style.

setUseInterimTilesOnError(useInterimTilesOnError) inherited

Set whether we use interim tiles on error.

Name Type Description
useInterimTilesOnError boolean

Use interim tiles on error.

setVisible(visible) inherited

Set the visibility of the layer (true or false).

Name Type Description
visible boolean

The visibility of the layer.

setZIndex(zindex) inherited

Set Z-index of the layer, which is used to order layers before rendering. The default Z-index is 0.

Name Type Description
zindex number

The z-index of the layer.

un(type, listener) inherited

Unlisten for a certain type of event.

Name Type Description
type string | Array.<string>

The event type or array of event types.

listener function

The listener function.

unset(key, opt_silent) inherited

Unsets a property.

Name Type Description
key string

Key name.

silent boolean | undefined

Unset without triggering an event.