Optional
antialias?: booleanIf true
, the gl context will be created with MSAA antialiasing, which can be useful for antialiasing custom layers.
Disabled by default as a performance optimization.
Optional
attributionIf set, an AttributionControl will be added to the map with the provided options.
To disable the attribution control, pass false
.
Note: showing the logo of MapLibre is not required for using MapLibre.
compact: true, customAttribution: "MapLibre ...".
Optional
bearing?: numberThe initial bearing (rotation) of the map, measured in degrees counter-clockwise from north. If bearing
is not specified in the constructor options, MapLibre GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to 0
.
0
Optional
bearingThe threshold, measured in degrees, that determines when the map's
bearing will snap to north. For example, with a bearingSnap
of 7, if the user rotates
the map within 7 degrees of north, the map will automatically snap to exact north.
7
Optional
bounds?: LngLatBoundsLikeThe initial bounds of the map. If bounds
is specified, it overrides center
and zoom
constructor options.
Optional
boxIf true
, the "box zoom" interaction is enabled (see BoxZoomHandler).
true
Optional
cancelDetermines whether to cancel, or retain, tiles from the current viewport which are still loading but which belong to a farther (smaller) zoom level than the current one.
true
, when zooming in, tiles which didn't manage to load for previous zoom levels will become canceled. This might save some computing resources for slower devices, but the map details might appear more abruptly at the end of the zoom.false
, when zooming in, the previous zoom level(s) tiles will progressively appear, giving a smoother map details experience. However, more tiles will be rendered in a short period of time.true
Optional
center?: LngLatLikeThe initial geographical centerpoint of the map. If center
is not specified in the constructor options, MapLibre GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to [0, 0]
Note: MapLibre GL JS uses longitude, latitude coordinate order (as opposed to latitude, longitude) to match GeoJSON.
[0, 0]
Optional
clickThe max number of pixels a user can shift the mouse pointer during a click for it to be considered a valid click (as opposed to a mouse drag).
3
Optional
collectIf true
, Resource Timing API information will be collected for requests made by GeoJSON and Vector Tile web workers (this information is normally inaccessible from the main Javascript thread). Information will be returned in a resourceTiming
property of relevant data
events.
false
The HTML element in which MapLibre GL JS will render the map, or the element's string id
. The specified element must have no children.
Optional
cooperativeIf true
or set to an options object, the map is only accessible on desktop while holding Command/Ctrl and only accessible on mobile with two fingers. Interacting with the map using normal gestures will trigger an informational screen. With this option enabled, "drag to pitch" requires a three-finger gesture. Cooperative gestures are disabled when a map enters fullscreen using FullscreenControl.
false
Optional
crossIf true
, symbols from multiple sources can collide with each other during collision detection. If false
, collision detection is run separately for the symbols in each source.
true
Optional
doubleIf true
, the "double click to zoom" interaction is enabled (see DoubleClickZoomHandler).
true
Optional
dragIf true
, the "drag to pan" interaction is enabled. An Object
value is passed as options to DragPanHandler#enable.
true
Optional
dragIf true
, the "drag to rotate" interaction is enabled (see DragRotateHandler).
true
Optional
fadeControls the duration of the fade-in/fade-out animation for label collisions after initial map load, in milliseconds. This setting affects all symbol layers. This setting does not affect the duration of runtime styling transitions or raster tile cross-fading.
300
Optional
failIf true
, map creation will fail if the performance of MapLibre GL JS would be dramatically worse than expected
(i.e. a software renderer would be used).
false
Optional
fitA FitBoundsOptions options object to use only when fitting the initial bounds
provided above.
Optional
hash?: boolean | stringIf true
, the map's position (zoom, center latitude, center longitude, bearing, and pitch) will be synced with the hash fragment of the page's URL.
For example, http://path/to/my/page.html#2.59/39.26/53.07/-24.1/60
.
An additional string may optionally be provided to indicate a parameter-styled hash,
e.g. http://path/to/my/page.html#map=2.59/39.26/53.07/-24.1/60&foo=bar, where foo
is a custom parameter and bar is an arbitrary hash distinct from the map hash.
false
Optional
interactive?: booleanIf false
, no mouse, touch, or keyboard listeners will be attached to the map, so it will not respond to interaction.
true
Optional
keyboard?: booleanIf true
, keyboard shortcuts are enabled (see KeyboardHandler).
true
Optional
localDefines a CSS
font-family for locally overriding generation of glyphs in the 'CJK Unified Ideographs', 'Hiragana', 'Katakana' and 'Hangul Syllables' ranges.
In these ranges, font settings from the map's style will be ignored, except for font-weight keywords (light/regular/medium/bold).
Set to false
, to enable font settings from the map's style for these glyph ranges.
The purpose of this option is to avoid bandwidth-intensive glyph server requests. (See Use locally generated ideographs.)
'sans-serif'
Optional
locale?: anyA patch to apply to the default localization table for UI strings, e.g. control tooltips. The locale
object maps namespaced UI string IDs to translated strings in the target language; see src/ui/default_locale.js
for an example with all supported string IDs. The object may specify all UI strings (thereby adding support for a new translation) or only a subset of strings (thereby patching the default translation table).
null
Optional
logoA string representing the position of the MapLibre wordmark on the map. Valid options are top-left
,top-right
, bottom-left
, or bottom-right
.
'bottom-left'
Optional
maplibreIf true
, the MapLibre logo will be shown.
Optional
maxIf set, the map will be constrained to the given bounds.
Optional
maxThe canvas' width
and height
max size. The values are passed as an array where the first element is max width and the second element is max height.
You shouldn't set this above WebGl MAX_TEXTURE_SIZE
.
[4096, 4096].
Optional
maxThe maximum pitch of the map (0-85). Values greater than 60 degrees are experimental and may result in rendering issues. If you encounter any, please raise an issue with details in the MapLibre project.
60
Optional
maxThe maximum number of tiles stored in the tile cache for a given source. If omitted, the cache will be dynamically sized based on the current viewport which can be set using maxTileCacheZoomLevels
constructor options.
null
Optional
maxThe maximum number of zoom levels for which to store tiles for a given source. Tile cache dynamic size is calculated by multiplying maxTileCacheZoomLevels
with the approximate number of tiles in the viewport for a given source.
5
Optional
maxThe maximum zoom level of the map (0-24).
22
Optional
minThe minimum pitch of the map (0-85). Values greater than 60 degrees are experimental and may result in rendering issues. If you encounter any, please raise an issue with details in the MapLibre project.
0
Optional
minThe minimum zoom level of the map (0-24).
0
Optional
pitch?: numberThe initial pitch (tilt) of the map, measured in degrees away from the plane of the screen (0-85). If pitch
is not specified in the constructor options, MapLibre GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to 0
. Values greater than 60 degrees are experimental and may result in rendering issues. If you encounter any, please raise an issue with details in the MapLibre project.
0
Optional
pitchIf false
, the map's pitch (tilt) control with "drag to rotate" interaction will be disabled.
true
Optional
pixelThe pixel ratio.
The canvas' width
attribute will be container.clientWidth * pixelRatio
and its height
attribute will be container.clientHeight * pixelRatio
. Defaults to devicePixelRatio
if not specified.
Optional
preserveIf true
, the map's canvas can be exported to a PNG using map.getCanvas().toDataURL()
. This is false
by default as a performance optimization.
false
Optional
refreshIf false
, the map won't attempt to re-request tiles once they expire per their HTTP cacheControl
/expires
headers.
true
Optional
renderIf true
, multiple copies of the world will be rendered side by side beyond -180 and 180 degrees longitude. If set to false
:
true
Optional
scrollIf true
, the "scroll to zoom" interaction is enabled. AroundCenterOptions are passed as options to ScrollZoomHandler#enable.
true
Optional
style?: StyleSpecification | stringThe map's MapLibre style. This must be a JSON object conforming to the schema described in the MapLibre Style Specification, or a URL to such JSON. When the style is not specified, calling Map#setStyle is required to render the map.
Optional
touchIf true
, the "drag to pitch" interaction is enabled. An Object
value is passed as options to TwoFingersTouchPitchHandler#enable.
true
Optional
touchIf true
, the "pinch to rotate and zoom" interaction is enabled. An Object
value is passed as options to TwoFingersTouchZoomRotateHandler#enable.
true
Optional
trackIf true
, the map will automatically resize when the browser window resizes.
true
Optional
transformA callback run before the map's camera is moved due to user input or animation. The callback can be used to modify the new center, zoom, pitch and bearing. Expected to return an object containing center, zoom, pitch or bearing values to overwrite.
null
Optional
transformA callback run before the Map makes a request for an external URL. The callback can be used to modify the url, set headers, or set the credentials property for cross-origin requests.
Expected to return an object with a url
property and optionally headers
and credentials
properties.
null
Optional
validateIf false, style validation will be skipped. Useful in production environment.
true
Optional
zoom?: numberThe initial zoom level of the map. If zoom
is not specified in the constructor options, MapLibre GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to 0
.
0
The Map options object.