mapbox-gl
3.34.2 · 3 Nov 2026SEE LICENSE IN LICENSE.txt6M / weekRepositoryHomepagenpmAtom feed
197 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
3.34.2
3 Nov 20263.34.1
29 Oct 2026Improve performance on map views with CJK glyphs by moving CJK rasterization offscreen.
Improve tile load performance via optimization of style property values recalculation.
Improve rendering performance via per-frame main thread work optimizations.
Features and improvements
Improve performance on map views with CJK glyphs by moving CJK rasterization offscreen.
Improve tile load performance via optimization of style property values recalculation.
Improve rendering performance via per-frame main thread work optimizations.
Add support of *-ignore-placement and *-allow-overlap in global placement.
Add
raster-maskandraster-mask-modepaint properties so a raster layer can be clipped to, or excluded from, the geometry of a fill layer
Bug fixes
Fix coverage stencil marks including polygons for other road classes, which hid roads that should stay visible.
Fix imported styles silently rendering nothing when the import fires a non-fatal error while loading.
Fix raster tiles occasionally showing the image of a different tile after zooming or panning on a slow network.
Fix
buildinglayer filters that usedistance,withinorworldviewdropping buildings.Fix a sudden camera jump at the end of long
flyTocamera animations.Fix 0 fadeDuration symbol placement offset.
Fix
projectiondocumentation incorrectly stating that custom layers are not supported on globe.Fix per-feature symbol/line paint value update based on light changes.
3.33.0
13 Oct 2026- breaking
Right-to-left text (such as Arabic and Hebrew) is now supported out of the box, loading a small WebAssembly module the first time it appears on the map.
setRTLTextPlugin,getRTLTextPluginStatusand thePluginStatustype are removed. - breaking
The base size of icons in the
text-fieldproperty is now calculated at the tile zoom level with the largest text size. As a result, the icons can be smaller when the text size depends on the zoom level. Improve memory use & map load time, especially for 3D layers.
Breaking changes
- breaking
Right-to-left text (such as Arabic and Hebrew) is now supported out of the box, loading a small WebAssembly module the first time it appears on the map.
setRTLTextPlugin,getRTLTextPluginStatusand thePluginStatustype are removed. - breaking
The base size of icons in the
text-fieldproperty is now calculated at the tile zoom level with the largest text size. As a result, the icons can be smaller when the text size depends on the zoom level.
Features and improvements
Improve memory use & map load time, especially for 3D layers.
Improve line rendering performance by using a uniform instead of a shader permutation for
line-dasharray.Add support for offsetting a control from its corner via
map.addControl(control, {position, offset: {x, y}}).Improve 3D Lanes map load performance.
Avoid placing parent-tile symbols when using the global placement.
Extend global placement debug info.
Bug fixes
Fix a severe performance regression when updating data-driven line layers with
setPaintProperty.Fix a rendering issue when drawing thousands of data-driven lines and symbols.
Fix transparent
buildingandfill-extrusionlayers blending the same pixel twice where they cover the same buildings, making the overlap look more opaque than either layer's opacity asks for.Fix an issue with GeoJSON geometries past longitude -+360 or latitude +-85 rendering incorrectly.
Fix map-aligned
icon-rotateandtext-rotatenot being measured from true north in projections other than Mercator or globe, which misrotated symbols such as crosswalks.Fix collision boxes not matching rotated symbols that use appearances with a layout
icon-rotateortext-rotate.Fix symbol fading not finishing when using global placement.
3.32.0
29 Sep 2026Slightly improve map load time via more aggressive chunk preloading.
Improve style parsing performance.
Preload Meshopt decoder earlier to improve 3D styles load time.
Features and improvements
Slightly improve map load time via more aggressive chunk preloading.
Improve style parsing performance.
Preload Meshopt decoder earlier to improve 3D styles load time.
Improve map load time by requesting the icon set earlier and lazy parsing icons on-demand.
Add support for the globe to mercator transition when using the global placement.
Add support for symbol fading when using the global placement.
Add debug visualization support when using the global placement.
CustomLayerInterface#render/#prerendernow receive aCustomLayerRenderParametersobject as an 8th argument, exposingprojectionMatrix(camera→clip),viewMatrix(world→camera) pair, plus the globe horizonglobeClippingPlaneand the globe center's screen positionglobeCenterInScreenPixels.
Bug fixes
Fix
raster-arraychunk loading when unused.Fix
transformRequestheaders and credentials being dropped from PMTiles requests.Fix
transformRequestheaders/credentials being dropped when loading GL model (GLTF) resources.Fix features rendering at the wrong position when a layer uses a
withinfilter and the map uses a projection other than Mercator or globe.Fix global placement throwing an error when placing symbols with no text.
Fix setting
paddingas a sideeffect in apreloadOnlyanimation.Respect
extra_boundson all TileJSON source types.Fix a regression with
map.remove()where it could retain the map instance in memory.Fix light/fog/snow/rain transitions.
3.31.0
17 Sep 2026- removed
Remove the experimental flag from
raster-allow-draping. Significantly improve GeoJSON memory footprint.
Reduce landmark model memory usage.
Features and improvements
Significantly improve GeoJSON memory footprint.
Reduce landmark model memory usage.
- removed
Remove the experimental flag from
raster-allow-draping. Add support for emissive MRT in custom layers.
Bug fixes
Fix
removeSourcethrowing under globe projection. (h/t @mhayk)
3.30.0
3 Sep 2026- breaking
Make pitch and rotation states independent. Previously, disabling rotation also disabled pitch. Now, pitch can be enabled independently of rotation.
Extract the terrain from the core ESM module.
Reduce shader size by removing unused code paths.
Breaking changes
- breaking
Make pitch and rotation states independent. Previously, disabling rotation also disabled pitch. Now, pitch can be enabled independently of rotation.
Features and improvements
Extract the terrain from the core ESM module.
Reduce shader size by removing unused code paths.
Upgrade Supercluster to v9 (optimize clustering memory footprint).
Add support for client-side overzooming for raster-array sources.
Add
AnimationFrameProvider(MapOptions.animationFrameProvider) to support driving the render loop from an external library.Enable landmark model LOD mesh download when the server provides such data.
Raise the maximum number of sources in a style to 64.
Bug fixes
Fix dark line artifacts on non-standard procedural building geometry.
Fix ESM terrain module loading for elevated-lines requiring terrain.
Fix validation of style light transition properties.
Fix symbol layer related errors after GL context loss.
Skip rings with zero area on fill-extrusions.
3.29.0
20 Aug 2026- breaking
Remove legacy undocumented
MapaddSourceTypeAPI which was superceded byCustomSourceInterfaceand experimentalTileProviderAPI. Add new
raster-color-scaleproperty, which can be set to"log"to improve color ramp precision when visualizing long-tailed raster datasets.Add new
raster-allow-drapingproperty that can be set tofalseto disable raster layer draping over globe/terrain.
Breaking changes
- breaking
Remove legacy undocumented
MapaddSourceTypeAPI which was superceded byCustomSourceInterfaceand experimentalTileProviderAPI.
Features and improvements
Add new
raster-color-scaleproperty, which can be set to"log"to improve color ramp precision when visualizing long-tailed raster datasets.Add new
raster-allow-drapingproperty that can be set tofalseto disable raster layer draping over globe/terrain.Move
symbol-z-offsetproperty out of experimental.Extend
distanceexpression to accept an expression as a second argument.Extend
configexpression to support object literals as values.Improve dashed line rendering in pitched views.
Added APIs for more granular control of interaction handlers:
map.keyboard:disablePitch,enablePitch,isPitchEnabled,disableBearing,enableBearing,isBearingEnabled,isEnabledmap.dragRotate:disableRotation,enableRotation,isRotationEnabledmap.touchZoomRotate:isRotationEnabled,isTapDragZoomEnabledFor all three,
isEnabledis changed from AND to OR semantics
Bug fixes
Fix rare line artifacts on sharp corners with short segments and non-bevel joins.
Fix ambient occlusion to not render for elevated (non-zero-base) extrusions.
Fix
MapresetFeatureStatesnot working properly in some scoped styles.
3.28.1
7 Aug 2026Fix
iconsetsicons rendering with ESM bundle.
3.28.0
5 Aug 2026- breaking
Disable
text-variable-anchorwhen appearances are present. - removed
Remove experimental flag from layer appearances.
Introduce experimental
map.getVerticalFieldOfView(),map.setVerticalFieldOfView(), and read-onlymap.getHorizontalFieldOfView()and an animatablefovcamera option.
Breaking changes
- breaking
Disable
text-variable-anchorwhen appearances are present.
Features and improvements
Introduce experimental
map.getVerticalFieldOfView(),map.setVerticalFieldOfView(), and read-onlymap.getHorizontalFieldOfView()and an animatablefovcamera option.Expose
line-border-widthandline-border-coloras public paint properties.Introduce experimental
line-border-gradientproperty for rendering gradient borders on lines.Add support for Meshopt v1 compressed models.
Support string color values for the
model-colorin a model source.Add
map.resetFeatureStates()to clear all feature states for a featureset or layer.Expose
map.getSchema()/map.setSchema()for managing the imported style's schema.Extract development and debug code from the ESM bundle into a separate module.
Extract more model code from the ESM core bundle.
Extract
raster-arraylayer as a separate ESM module.Reduce the bundle size by restructuring style, program, symbol, and expression code.
- removed
Remove experimental flag from layer appearances.
Improve symbol layer performance.
Reduce redundant repaints and checks during initial load.
Bug fixes
Fix double rotation of the FF5C character in vertical text rendering.
Preserve live gesture when camera setter is called from inside a drag/move handler.
Stop overwriting the
pointerEventsof markers set by the user.Fix models with vertex alpha 0 appearing black.
Fix incorrect rendering of fill extrusions with
fill-extrusion-edge-radiusat low zoom levels in some cases.
3.27.0
23 Jul 2026Upgrade to Typescript 7
Add cross-source HD roads elevation for symbols
Improve character rotation logic for some CJK characters in vertical text rendering mode
Features and improvements
Upgrade to Typescript 7
Add cross-source HD roads elevation for symbols
Improve character rotation logic for some CJK characters in vertical text rendering mode
Bug fixes
Fix raster-array out of bounds assertion error for non-mecator projections
Fix error when object-property strings were used in expressions
Fix wrong access token used on multi-map environments
Fix
number-formatdroppingmin/max-fraction-digitswhen they were 0Fix line-aligned label placement during globe-mercator transition
Fix crash when using style expressions with prototype-derived keys
Fix atlas cache returning another scope images
Fix
Style#{get,set,remove}FeatureStatewith{target: {layerId}}so imported-layer targets resolve against their own fragment's sources instead of the root style'sFix missing building along tile borders
Fix dynamic imports in UMD
Fix import.meta crash under modern bundlers
Fix
setPaintPropertyon symbol properties with a transition duration of 0
3.26.0
9 Jul 2026- breaking
Remove
transitionandinterpolatedflags from thecamera-projectionstyle property — enum properties cannot be transitioned, so these flags were incorrect. Make published TypeScript declarations self-contained, fixing consumer builds that failed with
skipLibCheck: false.Improve terrain raycast accuracy for mouse events, camera fitting, and other pointer interactions.
Breaking changes
- breaking
Remove
transitionandinterpolatedflags from thecamera-projectionstyle property — enum properties cannot be transitioned, so these flags were incorrect.
Features and improvements
Make published TypeScript declarations self-contained, fixing consumer builds that failed with
skipLibCheck: false.Improve terrain raycast accuracy for mouse events, camera fitting, and other pointer interactions.
Improve landmark model LOD switching with size-based distance heuristics for better rendering performance.
Bug fixes
Fix
hd-road-markupelevated lines rendering flat with zero-exaggeration terrain.Fix
viewport-ysymbol sorting causing aVertex buffer is not big enough for the draw callerror when a symbol bucket had multiple segments.Fix multilinestrings not displaying labels correctly.
Fix parametric colors sometimes loading the wrong cached image.
3.25.0
17 Jun 2026- breaking
Switch the ESM entry point to named exports (
import * as mapboxgl from 'mapbox-gl/esm') so that modern bundlers can eliminate small unused parts of the code. Replacemapboxgl.accessTokenwithMapaccessTokenoption. Most of the bundle still can't be statically eliminated, but this release also improves lazy loading of code at runtime, with more improvements on the way. - security
Fix minor vulnerabilities related to Object prototype pollution from an untrusted style or tiles.
Extend
MapgetLayerPropertyandsetLayerPropertyto support layer-level properties (minzoom,maxzoom,filter,slot,appearances)
Breaking changes
- breaking
Switch the ESM entry point to named exports (
import * as mapboxgl from 'mapbox-gl/esm') so that modern bundlers can eliminate small unused parts of the code. Replacemapboxgl.accessTokenwithMapaccessTokenoption. Most of the bundle still can't be statically eliminated, but this release also improves lazy loading of code at runtime, with more improvements on the way.
Features and improvements
Extend
MapgetLayerPropertyandsetLayerPropertyto support layer-level properties (minzoom,maxzoom,filter,slot,appearances)Extend
TileProviderAPI to acceptImageBitmapforrasterandraster-demproviders.Improve model loading and rendering performance.
Improve symbol rendering performance.
Improve performance of decoding and encoding vector tiles and other protobuf-encoded assets.
Improve color parsing performance, slightly improving load time for styles with many color values.
Extract indoor and part of the model rendering code to be loaded on demand when using the ESM entry point.
Add
GeolocateControlreadyevent andsetShowAccuracyCircle,setShowUserHeading,setFitBoundsOptions,setShowUserLocationmethods.Add
KeyboardHandlerdisablePan/enablePanmethods.Add
DragRotateHandlerdisablePitch/enablePitchmethods.Add
TouchZoomRotateHandlerdisableTapDragZoom/enableTapDragZoommethods.Expose
MapsetLanguage,getLanguage,setWorldview,getWorldviewas stable public methods (previously private).Remove all direct dependencies from
package.jsonslightly improving NPM install size and time.Improve anti-aliasing for lines with borders.
Implement automatic conflation of regular and HD road data in preparation for future Mapbox Standard updates.
Bug fixes
Fix an issue that sometimes caused black boxes to appear instead of symbol icons.
Fix precision issues on tile borders for elevated roads.
Fix rendering issues for stacked underground roads.
- security
Fix minor vulnerabilities related to Object prototype pollution from an untrusted style or tiles.
Fix the
Cutoff is currently disabled on terrainwarning on Standard style.Fix appearance conditions validation to accept compound expressions.
Fix issues with model cutout fading via
model-line-cutout-modeproperty.Fix an issue with step expression evaluation for symbol layers.
Fix an issue with custom layer rendering alongside data-driven
line-emissive-strength
3.24.1
12 Jun 2026Fix an issue with custom layer rendering alongside data-driven
line-emissive-strength.
3.24.0
18 May 2026Introduce Level of Detail (LOD) support for landmark models, enabling automatic switching between model versions based on camera distance.
Support additive blend mode with clamped density by setting the
line-blend-additive-clampproperty.Improve rendering performance by reducing per-frame matrix allocations.
Features and improvements
Introduce Level of Detail (LOD) support for landmark models, enabling automatic switching between model versions based on camera distance.
Support additive blend mode with clamped density by setting the
line-blend-additive-clampproperty.Improve rendering performance by reducing per-frame matrix allocations.
Improve rendering performance via parallel shader compilation on supported devices.
Improve rendering performance by advancing shader precompilation.
Improve shadow rendering performance.
Improve vector icon loading performance.
Improve initial load by skipping redundant config-related style layers updates in Web Workers.
Improve initial load by rescheduling shader precompilation to occur during browser idle time after the map's
idleevent.Improve model processing performance.
Improve performance and memory footprint by streamlining communication between the main thread and Web Workers.
Reduce first-interaction jank by optimizing shader compilation pipeline behavior.
Optimize expression parsing performance.
Improve an error messaging for the
line-trim-offsetproperty withoutlineMetrics.
Bug fixes
Fix LUT to properly work with premultiplied color.
Fix a potential memory leak and crash occurring when a map was destroyed.
Fix an issue where cross-fragments config values were not correctly updated.
3.23.1
4 May 2026Fix a rendering error occurring with
fill-extrusionlayers when terrain is enabled in specific edge cases.
3.23.0
29 Apr 2026Improve the performance of symbol layers on old devices.
Add
TileProviderfor raster and raster-dem sources, adding support for PMTiles with raster tiles.Enable client-side fontstack compositing by default. When multiple fonts are requested they are now fetched individually and composited on the client.
Features and improvements
Improve the performance of symbol layers on old devices.
Add
TileProviderfor raster and raster-dem sources, adding support for PMTiles with raster tiles.Enable client-side fontstack compositing by default. When multiple fonts are requested they are now fetched individually and composited on the client.
Promote interactions API to stable.
Add a bundler-friendly ESM bundle in the NPM package (
import mapboxgl from 'mapbox-gl/esm').Lazy-load procedural buildings and precipitation code when using the ESM entry point.
Bug fixes
Fix values smaller than 1 in
line-dasharraynot working.Fix a render issue where black boxes could appear instead of symbols briefly in some environments.
Fix
scale-factorbeing applied twice to icons with feature-dependenticon-size.Fix redundant WASM requests on map load when using the Standard style.
Fix hillshade rendering issue when using Safari in private browsing mode.
3.22.0
17 Apr 2026Fix a crash on PowerVR devices.
Fix nested scopes support in clip layers.
Fix Webpack warning on dynamic imports.
Bug fixes
Fix a crash on PowerVR devices.
Fix nested scopes support in clip layers.
Fix Webpack warning on dynamic imports.
Skip sub-pixel line dilution for intentionally thin lines.
Skip map-sessions request when
baseApiUrlis not a Mapbox host.
3.21.0
2 Apr 2026- breaking
Removed
mapbox-gl-unminified.jsbundle in the distribution — please switch to eithermapbox-gl.js,mapbox-gl-dev.js, or the newesm-min/mapbox-gl.jsESM bundle. - breaking
Removed
spriteFormatMapoption — now Mapbox styles will always use vector icons, while non-Mapbox styles will continue using classic raster sprites. Introduce the
TileProviderAPI, a mechanism for extending GL JS with custom vector tile providers.
Features and improvements
Introduce the
TileProviderAPI, a mechanism for extending GL JS with custom vector tile providers.Add first-class support for PMTiles via the new
TileProviderAPI and an official plugin (mapbox-gl-pmtiles-provider.js) that loads on demand.Add experimental
line-blend-modeproperty for rendering lines usingadditiveormultiplyblending.Slightly improve overall map loading times.
Improve symbol layer rendering performance (by adopting Uniform Buffer Objects for data-driven properties).
Improve indoor maps loading performance.
Bug fixes
Fix dragging gesture not working on the compass control.
Various fixes and improvements for the Appearances API.
Fix an edge case when combining custom icons with images included in the style's sprite.
Fix
setWorldviewnot updating layout properties correctly.Fix an issue when rendering stacked underground 3D roads.
Fix line dashes with non-integer total array lengths.
Fix various rendering issues when using
*-cutoff-fade-rangeproperties.Fix
cliplayer not clippingfill-extrusionambient occlusion.
Breaking changes
- breaking
Removed
mapbox-gl-unminified.jsbundle in the distribution — please switch to eithermapbox-gl.js,mapbox-gl-dev.js, or the newesm-min/mapbox-gl.jsESM bundle. - breaking
Removed
spriteFormatMapoption — now Mapbox styles will always use vector icons, while non-Mapbox styles will continue using classic raster sprites.
3.20.0
12 Mar 2026Improve memory efficiency by sharing image resources for symbol layers across map tiles.
Fix icons disappearing when changing the color theme.
Fix display of symbols added via the Appearances runtime API.
3.19.1
4 Mar 2026Removed the unused
@types/mapbox__point-geometrypackage that was causing some Typescript builds to fail
3.19.0
25 Feb 2026- security
Fix prototype pollution via Style JSON.
Promote elevated lines properties to stable:
line-z-offsetandline-elevation-reference.Add experimental
text-size-scale-rangeandicon-size-scale-rangestyle properties.
Features and improvements
Promote elevated lines properties to stable:
line-z-offsetandline-elevation-reference.Add experimental
text-size-scale-rangeandicon-size-scale-rangestyle properties.Add experimental
Map#setScaleFactor/Map#getScaleFactormethods for controlling symbol layer scaling.Apply global scale factor to images within
text-field.Fix z-fighting for elevated raster layers.
Add
raster-elevation-referencepaint property to elevate raster layers relative to ground instead of sea level.Add
line-elevation-ground-scalelayout property to scale elevated lines with terrain exaggeration.Use native async/await when loading models. Note: Please ensure GL JS is excluded from transpilation in your build setup.
Explicitly state minimum supported browser versions in
browserslist.Support
pitchanddistanceexpressions in filters.Support incremental updates when using
setFeatureState.Add experimental
Map#setNearClipOffset/Map#getNearClipOffsetmethods to control the near clip offset when ortohographic projections are used.
Bug fixes
Fix
RasterArrayTileSource#reload()not working correctly.Add request cancellation support to the
ModelSource.Fix flickering of aliased thin lines.
Fix elevated line bevel join artifacts at sharp corners.
Fix regressions in
NavigationControl.Fix namespace conflicts in different featuresets' selectors.
Recalculate layers with
visibility: nonein case properties were changed.Fix bug in border update logic of
fill-extrusionlayer, overriding clip layer's behaviour.Fix empty tiles on non-integer maxZoom when terrain was used.
- security
Fix prototype pollution via Style JSON.
3.18.1
22 Jan 2026Add support for
visibilityproperty in clip layers.Improve
raster-colorprecision for fine-grained value ranges.Fix color interpolation throwing errors in edge cases.
Features and improvements
Add support for
visibilityproperty in clip layers.Improve
raster-colorprecision for fine-grained value ranges.
Bug fixes
Fix color interpolation throwing errors in edge cases.
Fix appearances with no
icon-size.Fix disappearing symbols when used with elevated raster layers.
3.18.0
14 Jan 2026Add
scaleFactorsupport for images withintext-field.Add
showButtonoption toGeolocateControlthat allows hiding the control button.Add
followUserLocationoption andsetFollowUserLocationmethod toGeolocateControlto control whether the map follows the user's location.
Features and improvements
Add
scaleFactorsupport for images withintext-field.Add
showButtonoption toGeolocateControlthat allows hiding the control button.Add
followUserLocationoption andsetFollowUserLocationmethod toGeolocateControlto control whether the map follows the user's location.Improve
GeolocateControltimeout handling.Add support for
text-rotate,text-size, andtext-offsetproperties in appearances.Add
shadow-draw-before-layerproperty to directional light, allowing control over shadow draw order in the layer stack.Add
model-allow-density-reductionproperty to model layers. (h/t @JoshuaJMoore)
Bug fixes
Fix interaction handlers not working on model layers.
Fix stretchable icons without
icon-text-fitrendering with an incorrect size.Fix
icon-sizenot working correctly withcoalesceexpressions.Fix
raster-colorinterpolation when usingnearestraster-resampling.Fix render cut off for elevated raster-layer rendering in ortho projection range.
Fix symbol placement with optional and missing parts.
Expose all error properties for
GeolocateControlerror event (h/t @lucavb).Fix an error when querying multipolygons in
dynamic: truemode.Fix
AttributionControllinks sanitization.Fix appearances with no
icon-sizeusing the default value instead of the layout-defined one.Fix updates to model source via
ModelSource.setModelswhile models are still loading.Fix polygon clipping precision errors causing rendering artifacts in elevated structures.
Preserve featuresets in
map.getStyle()output.Expose TypeScript types from
@mapbox/mapbox-gl-style-specfor direct imports.
3.17.0
3 Dec 2025- removed
Remove experimental flag from the
extra_boundsproperty of raster and vector sources. - removed
Remove experimental flag from
modellayer. - removed
Remove experimental flag from
buildinglayer.
Features and improvements
Add experimental ESM support.
Make
line-emissive-strengthdata-driven.- removed
Remove experimental flag from the
extra_boundsproperty of raster and vector sources. - removed
Remove experimental flag from
modellayer. - removed
Remove experimental flag from
buildinglayer. Improve vector icons rasterization performance.
Improve shadow rendering performance.
Improve
buildinglayer performance.Improve shader initialization performance.
Bug fixes
Fix polygon rendering for dynamic GeoJSON sources.
Fix
raster-arraylayers not working on iOS < 18.4.Fix a performance issue for symbol layers with zero fade duration and static camera.
Fix occasional WebGL texture warnings when rendering terrain.
Fix features not being localized in dynamic filters when a worldview is set.
Fix an issue with clipping models on Standard.
Fix an issue with models flashing on
setData.Fix an issue with incorrect scoping of models added during runtime.
Fix line patterns not elevating properly on HD roads.
Sanitize attributions in
AttributionControl.Correctly support filtered features in appearances.
Fix an issue occuring when expressions are used in appearances.
Fix appearance optimization that resulted in wrong appearances being rendered.
Fix appearance icons not changing when feature state changed multiple times.
Improve TypeScript types.
3.16.0
23 Oct 2025Introduce experimental Appearances API for managing layer styling based on feature state.
Add
MapsetLayerPropertythat combinessetLayoutProperty&setPaintPropertyinto one method for convenience.Add support for node/material overrides & other improvements to
modelsource and layer.
Features and improvements
Introduce experimental Appearances API for managing layer styling based on feature state.
Add
MapsetLayerPropertythat combinessetLayoutProperty&setPaintPropertyinto one method for convenience.Add support for node/material overrides & other improvements to
modelsource and layer.Various improvements & fixes for upcoming 3D features (indoor, procedural buildings & elevated roads).
Add response headers to the
sourcedataevent data.Improve TypeScript types for style specification.
Bug fixes
Fix raster particle layer not rendering correctly on styles with emissive light.
Fix icons of different sizes rendering incorrectly in appearances.
Fix worldview filtering with dynamic expressions.
Improve accuracy of
queryRenderedFeaturesfor model layers.Fix a bug with heatmap sometimes disappearing after switching projection.
Fix rendering of model layer with vector source on globe projection.
Fix flickering of fill-extrusion buildings when using clip layers.
Fix inaccuracies in 3D model query intersection.
Fix the passing of
GeolocationPositiontogeolocateevent listeners.Fix the placement of line-aligned text with a non-default
scaleFactor.
3.15.0
10 Sep 2025Add
queryRasterValuemethod for querying values inraster-arraylayers.Add
icon-image-use-themeproperty.Add support for Mapbox vector tiles with precalculated line metrics (for line gradients).
Features and improvements
Add
queryRasterValuemethod for querying values inraster-arraylayers.Add
icon-image-use-themeproperty.Add support for Mapbox vector tiles with precalculated line metrics (for line gradients).
Improve HD Roads loading performance.
Optimize applying LUT when updating images at runtime.
Improve TypeScript types in Style Spec validation methods.
Slightly improve
hslaexpression performance.Optimize applying LUT for patterns.
Round
queryRasterValueresults to 12 decimal digits to fix precision issues.Improvements on typing and testing.
Bug fixes
Fix an issue with refreshing expired raster array tiles.
Fix an error on GeoJSON with
"Infinity"and similar ids.Fix
GL_INVALID_VALUEconsole warning on Mapbox Satellite Standard and a few other styles.Fix model layer positioning during globe to mercator transition.
Fix an issue with incorrect transparency for some icons with LUT applied.
Fix an issue where updating
*-occlusion-opacityproperties didn't have any effect.Fix an issue with MRT layers throwing an error when reloading.
Fix occlusion layer ordering.
Fix an issue where using too many data-driven properties on the symbol layer could break the map.
Fix gradients and interpolations with fully-transparent colors.
Fix model layer density reduction.
Fix performance regression on styles that use feature-state expressions.
3.14.0
30 Jul 2025- breaking
Imported styles will use the
glyphsURL template from the root style instead of their own. Add a
splitexpression to divide a string into an array of substrings based on a specified delimiter.Improve memory usage for GeoJSON sources.
Breaking changes
- breaking
Imported styles will use the
glyphsURL template from the root style instead of their own.
Features and improvements
Add a
splitexpression to divide a string into an array of substrings based on a specified delimiter.Improve memory usage for GeoJSON sources.
Bug fixes
Fix an issue with querying rendered features during the globe-to-Mercator transition.
Fix resources cleanup when removing a map with a terrain or/and vector icons.
Fix an issue where a single primary image was not rendered correctly with
icon-image-cross-fade.Fix an edge case involving the mixing of vertical and horizontal writing modes.
Fix rendering of multiple
rasterlayers from a singleraster-arraysource.Fix restoration of maps with background patterns, heatmap, image, video, or raster sources after WebGL context loss.
Fix memory spike when calling
setDataon large datasets.
3.13.0
17 Jun 2025- breaking
interpolateexpression will interpolate between non-alpha-premultiplied colors. The change might affectraster-particle-color,line-gradient, andheatmap-color. - breaking
rgbexpression will return non-premultiplied-alpha color. Add the
["worldview"]expression, which returns the currentworldviewof the map.
Breaking changes
- breaking
interpolateexpression will interpolate between non-alpha-premultiplied colors. The change might affectraster-particle-color,line-gradient, andheatmap-color. - breaking
rgbexpression will return non-premultiplied-alpha color.
Features and improvements
Add the
["worldview"]expression, which returns the currentworldviewof the map.Add
model-translationsupport for batched model layers.Improve indoor level interaction.
Add support of gradient transforms in the fill style of vector icons.
Bug fixes
Fix querying and styling issues with multiple model layers referencing the same source.
Fix
mapbox-gl-rtl-textv0.3.0 plugin not loading in certain configurations.Fix icons with
text-variable-anchordisappearing.Fix minor distortions on vector icons in some cases.
Fix zooming over terrain with negative altitude values.
Fix interactions to not throw on
mouseleavewithoutmouseenter.Fix shadow rendering issues on underground structures.
Fix striping artifacts when rendering shadows on some GPU configurations.
Fix errors when viewing a style with filtered model layers.
Fix parsing of
color-use-themeproperty of 3D lights.Fix feature-dependent
configexpressions (h/t @brncsk) #13453.Fix reset of the indoor floorplan selection after moving the camera.
Fix excessive rerendering of the map after
setStylewith the same URL of an import.Fix source reloading during mercator-globe transition with terrain.
Fix color of semi-transparent vector icons.
3.12.0
8 May 2025Add experimental support for rendering 3D road intersections.
Add shadow rendering support for elevated lines.
Add
wrapTileIdproperty toCustomLayerInterfaceto control whether tile IDs are wrapped across world copies during rendering.
Features and improvements
Add experimental support for rendering 3D road intersections.
Add shadow rendering support for elevated lines.
Add
wrapTileIdproperty toCustomLayerInterfaceto control whether tile IDs are wrapped across world copies during rendering.Add
line-pattern-cross-fade,fill-pattern-cross-fade, andfill-extrusion-pattern-cross-fadeproperties for smooth transitions between pattern images.Add support for
extra_boundsin TileJSON for more fine-grained control over tile requests, particularly when dealing with sparse data coverage.Improve performance by lazy loading 3D models.
Slightly improve JS bundle sizes.
Various TypeScript improvements.
Bug fixes
Fixed an issue where calling
setDataon symbol layers could cause flickering.Expose
CustomSourceInterfaceTypeScript type that was missing in the public interface.Fix some edge cases related to rendering of elevated structures.
Relax
line-gradientvalidation to work not only on GeoJSON, but also on vector tile sources if they havemapbox_clip_startandmapbox_clip_endproperties precomputed.Fix
styleimagemissingevent not firing in certain scenarios.Fix rendering of fully stretchable vector icons.
Fix
queryRenderedFeatureson Globe at low zoom levels.
3.11.1
24 Apr 2025Improve icon loading performance, in particular for landmark icons.
Fix
undefinedpassed inMarkeroptions not falling back to default values.
3.11.0
1 Apr 2025- breaking
The
atexpression does not interpolate anymore. Please useat-interpolatedif you want to keep the old behavior. Add landmark icons. Landmark icons are stylized, uniquely designed POI icons that indicate the most popular and recognizable landmarks on the map. At the time of this release, we have landmarks for 5 cities: London, Berlin, New York City, San Francisco, and Tokyo.
Add
at-interpolatedexpression as the interpolated counterpart to theatexpression.
Breaking changes
- breaking
The
atexpression does not interpolate anymore. Please useat-interpolatedif you want to keep the old behavior.
Features and improvements
Add landmark icons. Landmark icons are stylized, uniquely designed POI icons that indicate the most popular and recognizable landmarks on the map. At the time of this release, we have landmarks for 5 cities: London, Berlin, New York City, San Francisco, and Tokyo.
Add
at-interpolatedexpression as the interpolated counterpart to theatexpression.Add
altitudemarker property to adjust elevation. (h/t @yangtanyu) #13335.Add
getCooperativeGesturesandsetCooperativeGesturesmap methods to control cooperative gestures logic after the map is initialized.Add
getGlyphsUrlandsetGlyphsUrlmap methods to manage the glyphs endpoint URL.Add
pitchRotateKeymap option to override the modifier key for rotate and pitch handlers.Add filtering support for model layers.
Add support for vector icons color parameters with alpha values.
Bug fixes
Hide labels with unreadable angles.
Fix rendering of vector image in text on HiDPI screens.
Ensure Katakana and CJK symbols render correctly in vertical writing mode.
Fix popup position update on map move. (h/t @ThugRaven) #13412
Fix rendering of self-intersecting elevated lines.
Prevent line pattern from turning black at certain zoom levels when shadows are enabled.
Fix missing triangles in variable-width lines.
Improve Style-Spec validator types.
Fix reloading of tiles in style imports.
Fix issue where updated images were never cleared after patching them.
Fix rendering performance regression related to use-theme.
3.10.0
13 Feb 2025Add support for data-driven
*-use-themeproperties.Improve rendering of complex SVG clip paths for vector icons.
Fix issue where the close popup button was hidden from screen readers.
Features and improvements
Add support for data-driven
*-use-themeproperties.Improve rendering of complex SVG clip paths for vector icons.
Bug fixes
Fix issue where the close popup button was hidden from screen readers.
Fix updating of schema config values of imported styles.
Fix line placement symbol disappearing issue during transition from globe.
Fix
queryRenderedFeaturesnot working on duplicated model layers.Fix in-place update for SDF image.
Fix LUT not being applied to in-place updated image.
Fix various issues with using
mouseenterandmouseleavewith Interactions API.Fix error with interactible map elements during interaction with a map that wasn't fully loaded.
Fix rendering of elevated and non-elevated lines on the same layer.
Fix pixel ratio handling for patterns with vector icons.
Fix positioning of vector icons with modified
icon-size.Fix a blank map issue after WebGL context loss.
Fix loss of precision for close to camera models.
Fix transparent models not being culled when terrain is enabled.
3.9.4
27 Jan 2025Fix vector icons rendering with stretch areas on high DPI devices.
3.9.3
15 Jan 2025Fix issues when updating feature state on symbol layers.
Fix canvas source not rendering correctly after a canvas resize.
3.9.2
3 Jan 2025Fix the display of user-rendered images.
Fix a broken build issue in specific bundling configurations using Vite or ESBuild.
Fix the console error issue that sometimes occurs during map initialization.
3.9.1
23 Dec 2024Fix an error when using background patterns on styles with vector icons enabled.
Fix
queryRenderedFeaturesnot working on styles with custom layers.When using
queryRenderedFeaturesandquerySourceFeatureswithfeatureset, fixfilteroption to apply tofeaturesetselectors rather than original properties, and addfeatureNamespacevalidation.
Fix an error when using background patterns on styles with vector icons enabled.
Fix
queryRenderedFeaturesnot working on styles with custom layers.When using
queryRenderedFeaturesandquerySourceFeatureswithfeatureset, fixfilteroption to apply tofeaturesetselectors rather than original properties, and addfeatureNamespacevalidation.Fix
queryRenderedFeaturesmissingsource,sourceLayerandlayerproperties in resulting features where they should be present.Fix small rendering artifacts on line corners when using patterns with
line-join: none.
3.9.0
18 Dec 2024- breaking
Rename
featuresetproperty totargetinaddInteractionandqueryRenderedFeaturesoptions. Add experimental vector icons support.
Add experimental precipitation support through
snowandrainstyle properties.
Breaking changes
- breaking
Rename
featuresetproperty totargetinaddInteractionandqueryRenderedFeaturesoptions.
Features and improvements
Add experimental vector icons support.
Add experimental precipitation support through
snowandrainstyle properties.Add experimental features for interactive indoor maps.
Add
to-hslaexpression.Add
*-use-themeproperty to override the color theme for specific layers.Add support for
color-themeoverrides in imports.Add per-feature
mouseenter,mouseover,mouseleave, andmouseoutevents foraddInteraction.Enable mixing
featuresetsandlayersin theMap#queryRenderedFeatures.Improve landmark rendering performance.
The
cliplayer is now stable and no longer marked experimental.
Bug fixes
Fix crash on devices with PowerVR GPUs.
Fix dark shade of fill-extrusion buildings caused by specific light directions.
Fix double shadowing on lines at ground level.
Fix shadow acne from 3D structures close to the ground.
Fix update of state-dependent features during brightness changes.
Fix an edge case with fill extrusions around tile borders not being updated correctly on terrain load.
Fix a race condition where using
line-z-offsetwould sometimes break layer rendering order.
3.8.0
12 Nov 2024Add experimental support for style-defined
featuresets, an upcoming way to query features in Mapbox Standard and other fragment-based styles.Add experimental
MapaddInteraction/removeInteractionmethods that make it easier to manage map interactions like clicking and hovering over features.Add experimental support for elevated lines with
line-cross-slopeandline-elevation-referenceproperties.
Features and improvements
Add experimental support for style-defined
featuresets, an upcoming way to query features in Mapbox Standard and other fragment-based styles.Add experimental
MapaddInteraction/removeInteractionmethods that make it easier to manage map interactions like clicking and hovering over features.Add experimental support for elevated lines with
line-cross-slopeandline-elevation-referenceproperties.Add experimental
scaleFactormap option andsetScaleFactormethod to increase map label size (useful for improving accessibility or adjusting text size for different devices).Add support for using
line-progressexpression in non-data-driven line properties.Add experimental
fill-extrusion-height-alignmentandfill-extrusion-base-alignmentproperties to control fill extrusion top/bottom alignment.Improve performance of dynamic brightness changes.
Minor optimizations to reduce load time.
Bug fixes
Fix localization when setting a worldview on the Mapbox Standard style.
Fix raster array rendering on some Android devices.
Fix an issue where fill-extrusion buildings would disappear when zooming out.
Fix line joins for thick semi-transparent or blurred lines.
Improve appearance of line corners with densely placed vertices.
Fix anti-alising aftifacts on blurred lines.
Fix call stack overflow caused by repeated
addImportcalls.Fix failures when handling non-renderable characters.
Fix rendering of Osage script.
Fix certain edge cases when using config expression in filter properties.
Fix patterned fill extrusions being visible with zero opacity alpha.
Fix data-driven
symbol-z-offsetnot working properly.Fix fill extrusions on terrain producing WebGL warnings in some cases.
Fix
line-emissive-strengthnot being applied to patterned lines.
3.7.0
27 Sep 2024Add
background-pitch-alignmentproperty of thebackgroundlayer, which is set tomapby default but can now be set toviewport. Useful for highlighting individual features by dimming the rest of the map with a semitransparent background.Add new control positions (
top,right,bottom, andleft) (h/t @Ethan-Guttman).Add
retainPaddingoption for camera movement methods, which can be set tofalsefor pre-v3.4 padding behavior.
Features and improvements
Add
background-pitch-alignmentproperty of thebackgroundlayer, which is set tomapby default but can now be set toviewport. Useful for highlighting individual features by dimming the rest of the map with a semitransparent background.Add new control positions (
top,right,bottom, andleft) (h/t @Ethan-Guttman).Add
retainPaddingoption for camera movement methods, which can be set tofalsefor pre-v3.4 padding behavior.Add
configexpression support in layer filter.Add symbol elevation properties:
symbol-z-offsetandsymbol-elevation-reference.Add the
fill-z-offsetproperty for fill layers.Improve
Map#fitBoundsfor the alternative projections.Improve terrain hillshade lighting anchored to viewport.
Improve shadow casting from 3D models.
Improve error messages for invalid expressions.
Skip landmarks rendering when the camera is inside them.
Improve type checking for the
Map#setPaintPropertyandMap#setLayoutPropertymethods.Allow the
stringevent type in Map event handlers.Expose
RequestTransformFunction,ResourceType, andRequestParameterstypes.Improve texture memory footprint on some platforms.
Bug fixes
Fix feature filtering when using 3D lights.
Fix pattern rendering issues on some devices at high zoom levels.
Fix
fill-extrusion-line-widthrendering for large polygonsFix symbol placement ordering when
symbol-z-orderis set toauto.Fix the issue where
minzoomandmaxzoomproperties were ignored bycliplayers.Fix handling previously hidden models in
cliplayers.Fix directional light
cast-shadowsproperty type.Fix an edge case that could produce
setStencilMode-related error in the console with the dev build.Fix an issue where some fill extrusions could temporarily disappear when zooming quickly in certain areas.
Fix an edge case that could cause flickering on a far plane on high zooms.
3.6.0
14 Aug 2024Add wall rendering mode to the
fill-extrusionlayer by introducingfill-extrusion-line-widthandfill-extrusion-line-alignmentproperties. Setfill-extrusion-line-widthto a non-zero value to render walls instead of a solid extrusion.Improve initial load performance.
Add inner glow effect for negative
circle-blurvalues.
Features and improvements
Add wall rendering mode to the
fill-extrusionlayer by introducingfill-extrusion-line-widthandfill-extrusion-line-alignmentproperties. Setfill-extrusion-line-widthto a non-zero value to render walls instead of a solid extrusion.Improve initial load performance.
Add inner glow effect for negative
circle-blurvalues.Add
raster-particle-elevationproperty.Add support for inlining TileJSON in style source definitions using
datafield.Improve 3D models' shadow appearance.
Improve performance of updating config values of a style.
Add more descriptive expression evaluation error messages.
Improve TypeScript typings.
Improve performance of symbol occlusion (visibility checks against terrain and 3D objects).
Add
clip-layer-scopeproperty to limitcliplayer to a specific style fragment.Add
Mapidlemethod to check whether a map is idle.
Bug fixes
Fix
isSourceLoadedflag onsourcedataevent for already loaded sources.Fix firing
loadevent when all tiles fail to load.Fix performance issues when GeoJSON in
dynamicmode is updated too frequently.Fix GeoJSON line rendering in
dynamicmode.Fix rasterarray layer flickering from stale tiles cache.
Fix spikes when viewing terrain-enabled maps in certain environments.
Fix
MapgetLayernot working properly with custom layers.Fix custom layer rendering issues on globe with high pitch.
Fix an issue with
line-trim-offseton very long lines.Fix rendering issues when ground effects overlap with line layers.
Fix landmark visibility issues near tile borders.
Fix accessibility issues with compact attribution button and logo.
3.5.2
18 Jul 2024Improve 3D models rendering performance.
Slightly improve terrain rendering performance.
Improve TypeScript API, including strongly typed Map event listeners, improved type narrowing, and more.
Features and improvements
Improve 3D models rendering performance.
Slightly improve terrain rendering performance.
Improve TypeScript API, including strongly typed Map event listeners, improved type narrowing, and more.
Bug fixes
Fix raster particle data decoding and improve rendering quality.
Fix 3D lighting rendering when lookup tables (LUT) image is applied.
Fix shadows rendering artifacts on
fill-extrusion-cutoff-fade-range.
3.5.1
5 Jul 2024Revert default behavior of symbol occlusion behind terrain to maintain compatibility. Set
icon-occlusion-opacity/text-occlusion-opacityproperties to opt-in to new occlusion behavior.3.5.0
4 Jul 2024- breaking
This release marks a significant transition for GL JS, moving from Flow to TypeScript. While we have maintained backward compatibility where possible, the community typings
@types/mapbox-glare not fully compatible with the new first-class typings. Users relying on the community typings may experience breaking changes. Please remove the@types/mapbox-gldependency and refer to the v3.5.0 migration guide for instructions on upgrading, resolving common issues, and asking questions regarding the migration to the first-class typings. We welcome your feedback and contributions to make Mapbox GL JS better. Add
color-themeproperty andMapsetColorThememethod to enable colorization with a lookup table (LUT) images.Significantly improve performance of
updateDataforGeoJSONsources indynamicmode.
Breaking changes
- breaking
This release marks a significant transition for GL JS, moving from Flow to TypeScript. While we have maintained backward compatibility where possible, the community typings
@types/mapbox-glare not fully compatible with the new first-class typings. Users relying on the community typings may experience breaking changes. Please remove the@types/mapbox-gldependency and refer to the v3.5.0 migration guide for instructions on upgrading, resolving common issues, and asking questions regarding the migration to the first-class typings. We welcome your feedback and contributions to make Mapbox GL JS better.
Features and improvements
Add
color-themeproperty andMapsetColorThememethod to enable colorization with a lookup table (LUT) images.Significantly improve performance of
updateDataforGeoJSONsources indynamicmode.Add
icon-occlusion-opacityandtext-occlusion-opacityproperties to fade symbols behind models and landmarks.Add
line-occlusion-opacityproperty to fade lines behind 3D objects.Add experimental
cliplayer to filter out rendering data.Add experimental
line-z-offsetproperty for a non-globe view.Add
model-cutoff-fade-rangeproperty to control fade out of faraway 3D buildings.Improve precision of
line-patternon long lines and higher zooms.Add experimental
line-trim-colorandline-trim-fade-rangeproperties to customize rendering of lines trimmed withline-trim-offset.Add
MapgetSlotsmethod for listing available slots of a style.
Bug fixes
Fix a performance regression in Standard style introduced in v3.4.0.
Fix icon rotation during globe transition.
Fix GeoJSON data loss due to frequent
updateDatacalls.Improve
raster-particlelayer animation.Fix
model-front-cutoffproperty for Meshopt-encoded models.Fix errors in the console on empty 3D tiles.
Fix not properly detecting fingerprinting protection when adding terrain through
setTerrain.Fix
style.loadevent missingstyleproperty.Fix errors when using
queryRenderedFeatureson areas with missing DEM tiles when terrain is enabled.
3.4.0
24 May 2024Add
dynamic: trueoption for GeoJSON sources that enables partial update API withsource.updateDatamethod. Further optimizations for this mode are expected in future releases.Add
MapsetConfig,getConfig,setSchemaandgetSchemamethods for batch setting of style configuration options.Add
configoption for theMapconstructor andsetStylemethods for conveniently setting style configuration options on map initialization.
Features and improvements
Add
dynamic: trueoption for GeoJSON sources that enables partial update API withsource.updateDatamethod. Further optimizations for this mode are expected in future releases.Add
MapsetConfig,getConfig,setSchemaandgetSchemamethods for batch setting of style configuration options.Add
configoption for theMapconstructor andsetStylemethods for conveniently setting style configuration options on map initialization.Add
icon-color-saturation,icon-color-contrast,icon-color-brightness-minandicon-color-brightness-maxto control symbol layer appearance.Introduce a new
line-joinmode:noneto improve line pattern distortions around joins.Extend
model-idproperty to support URIs (in addition to style-defined model references).Expose more parameters in map
devtoolsUI.
Bug fixes
Fix an issue with
flyToignoringpaddingin its options.Respect padding in
cameraForBoundson globe view. (h/t @jonasnoki) #13126Fix
preloadOnlynot preloading tiles from style imports.Fix
queryRenderedFeaturesfor non-integer ID in non-tiled model sourcesFix
model-scaleproperty for large number of 3D models.Fix flickering of
raster-particlelayer on globe view.Improve rendering of low-resolution
raster-arraydata.Fix an issue with GL JS bundle not building locally on Windows.
Fix multiple edge cases when using
symbol-z-elevate.Fix rendering issues with
raster-particlelayer on certain Android devices.Fix shadow and lighting rendering issues in certain areas when using Mapbox Standard.
3.3.0
10 Apr 2024Add a new
raster-arraysource type, representing a new experimental Mapbox Raster Tile format which encodes series of tiled raster data (such as weather time series).Add a new
raster-particlelayer which animates particles of different speed and color based on underlyingraster-arraydata.Add
addImport,moveImport,updateImport, andremoveImportAPI methods.
Features and improvements
Add a new
raster-arraysource type, representing a new experimental Mapbox Raster Tile format which encodes series of tiled raster data (such as weather time series).Add a new
raster-particlelayer which animates particles of different speed and color based on underlyingraster-arraydata.Add
addImport,moveImport,updateImport, andremoveImportAPI methods.Add
getSlot, andsetSlotAPI methods to control layers' slots.Add landmarks and models support in
queryRenderedFeatures.Add
raster-elevationsupport for tiled raster sources.Add
configexpression support in fog.Improve map loading performance.
Bug fixes
Fix zooming with the pitched camera and
maxZoom.Fix memory leak after removing the map. (h/t @kamil-sienkiewicz-asi) #13110, #13116
Fix broken horizon line for some camera values.
Fix broken globe draping after updating style with
setStyle.Fix the
zoffset when the opacity is evaluated at 0 on the zoom change.Fix the
formatexpression in theconfigexpression.Fix adding a marker to the map that is not loaded when fog is enabled.
Fix symbol and icon rendering order when using
symbol-sort-keyproperty.
3.2.0
1 Mar 2024- removed
Remove role attribute for non-visible alerts. (h/t @jakubmakielkowski) #13051
Improve map loading performance.
Add a debug UI for the development build of GL JS, enabled with
devtools: trueinMapoptions.
Features and improvements
Improve map loading performance.
Add a debug UI for the development build of GL JS, enabled with
devtools: trueinMapoptions.Add imports support in
map.areTilesLoaded.Add support of rotation of elevated raster layers.
Add support of negative values for
fill-extrusion-flood-light-ground-radiusproperty.Improve visual cutoff behavior of buildings when using
fill-extrusion-cutoff-fade-rangeproperty.
Bug fixes
Fix the moiré effects on patterns in tilted map views.
Fix occasional rendering issues with semitransparent raster tiles on globe view.
Fix
configexpression chaining through nested styles and other issues related to config scope.Fix an issue where
map.flyTowithpaddingoption was setting and overriding map's padding.Issue a warning instead of a validation error if
urlortilesis missing from source, i.e. in MapTiler source.- removed
Remove role attribute for non-visible alerts. (h/t @jakubmakielkowski) #13051
Fix an elevation of symbols above multiple fill extrusions, when some of them hidden or lowered.
Fix a small callback-related memory leak. (h/t @temas) #13074
Fix
configandformatexpressions not working together.Improve error reporting when a user environment doesn't support WebGL 2.
3.1.2
25 Jan 2024Fix attribution not being displayed for imported fragments (reintroducing the fix from v3.0.1 that was accidentally missing in v3.1.0).
3.1.1
25 Jan 2024Fix
fill-extrusionsnot being displayed in alternative projections.Fix an issue when WebGL might randomly crash to an unrecoverable state on some mobile devices, specifically Safari on iOS.
3.1.0
18 Jan 2024Improve performance for maps with many textures (such as styles with satellite imagery), fixing excessive memory usage. (h/t @tristan-morris) #12924
Add
raster-elevationproperty for elevating raster layers to a constant height (e.g. clouds over globe).Add
raster-emissive-strengthandfill-extrusion-emissive-strengthproperties for controlling 3D lighting on buildings and raster layers.
Features and improvements
Improve performance for maps with many textures (such as styles with satellite imagery), fixing excessive memory usage. (h/t @tristan-morris) #12924
Add
raster-elevationproperty for elevating raster layers to a constant height (e.g. clouds over globe).Add
raster-emissive-strengthandfill-extrusion-emissive-strengthproperties for controlling 3D lighting on buildings and raster layers.Add
MapgetConfigPropertymethod for getting current style config values.Add
configsupport in terrain options.Improve performance for pitched views with many fill extrusions on higher zoom levels.
Allow turning off the terrain that is defined in the imports on the root-level Style by setting it to
null.Allow the partial terrain exaggeration update without specifying the source.
Respect style schema restrictions (
minValue,maxValue,stepValue,values,type) when evaluating config options.
Bug fixes
Fix an issue where
center: [0, 0]andzoom: 0map options were ignored in favor of style settings.Fix an issue with the camera not taking the short route when animating between locations across the anti-meridian.
Fix an issue where a style with imports sometimes loaded in incomplete state.
Fix an issue with rendering styles with nested imports.
Fix an issue with sources not reloading when changing language and worldview.
Fix an issue where updating a style fragment URL didn't work correctly.
Fix an issue when adding a layer with explicit
slotnot taking precedence over thebeforeparameter for layer order.Fix an issue where updating an image before initial image is loaded produced an error. (h/t @maciejmatu) #12928
Fix an issue with incorrect collisions for elevated symbols.
Fix an issue with
"camera-projection": "orthographic"not working in styles with imports.Fix an issue with tiles sometimes missing in terrain mode on views from a hill down on a valley.
Fix compact attribution style when using global CSS that sets
box-sizing: border-box. (h/t @simondriesen) #12982Remove redundant
aria-labelattribute in attribution control that fails accessibility conformance. (h/t @maggiewachs) #12981Disable terrain and hillshade when browser fingerprinting protection (e.g. in private browsing mode) prevents it from rendering correctly.
Fix layer rendering when import requests are failing.
Fix map
loadevent not firing for the sources whose tiles are 404s.Require either
urlortilesfor tiled sources during validation.Validate for empty layer and source IDs in runtime.
Changes since
v3.1.0-beta.1Features and improvements
Allow turning off the terrain that is defined in the imports on the root-level Style by setting it to
null.Allow the partial terrain exaggeration update without specifying the source.
Respect style schema restrictions (
minValue,maxValue,stepValue,values,type) when evaluating config options.
Bug fixes
Disable terrain and hillshade when browser fingerprinting protection (e.g. in private browsing mode) prevents it from rendering correctly.
Fix layer rendering when import requests are failing.
Fix map
loadevent not firing for the sources whose tiles are 404s.Require either
urlortilesfor tiled sources during validation.Validate for empty layer and source IDs in runtime.
3.0.1
8 Dec 2023Fix attribution not being displayed for imported fragments.