Releases: maplibre/maplibre-gl-js
Releases · maplibre/maplibre-gl-js
Release list
v6.0.0-22
Immutable
release. Only release title and notes can be modified.
✨ Features and improvements
- Validate the terrain passed to
map.setTerrain, which was previously applied unchecked (#7941) (by @HarelM) - Improve runtime error warnings to point at the offending style location (e.g.
layers[3].paint.line-color,layers[3].filter) instead of just logging the bare error message (#7869) (by @CommanderStorm) ⚠️ Interpolate the light position in spherical coordinates instead of cartesian ones, so that a transition keeps its radial distance. (#7919) (by @HarelM)
🐞 Bug fixes
- Log style validation warnings instead of treating them as errors, so that a filter mixing legacy and expression syntax no longer aborts the style load and blanks the map (#7941) (by @HarelM)
- Validate
raster-demsources passed tomap.addSource, which were previously skipped. Stop a source type the style spec has no schema for, such as one registered withaddSourceType, from failing the whole style. Previously onlycanvaswas let through (#7941) (by @HarelM)
v6.0.0-21
Immutable
release. Only release title and notes can be modified.
✨ Features and improvements
- Improve terrain render-to-texture preparation performance by skipping sources that are not rendered to terrain textures (#7863) (by @DoFabien)
- Add
Map.setMissingStyleImageResolverfor resolving missing style images with sync or async callbacks (#7850) (by @birkskyum) ⚠️ Stop allowingstyleimagemissinglisteners to resolve the current image request; useMap.setMissingStyleImageResolverinstead (#7892) (by @birkskyum)- Add
RasterTileSource#setPremultiplyAlpha(false)to preserve raw RGBA tile values when alpha is used for data instead of opacity (#7235) (by @plantain).
v6.0.0-20
Immutable
release. Only release title and notes can be modified.
✨ Features and improvements
⚠️ Mapnow composes aCamerainstead of extending it (MapextendsEventeddirectly and forwards the camera API). The internalmap.transformwas removed — use map's public API instead or open a PR if you need something that's not exposed. Removed the internaltransform.getMatrixForModelhelper (#7800) (by @HarelM)
🐞 Bug fixes
- Fix
line-layer-opacity/fill-layer-opacityclipping away a subsequent layer that shares the same source (#7867) (by @CommanderStorm) - Fix camera jump in flyTo when minZoom is set (#7743) (by @YuChunTsao)
v6.0.0-19
Immutable
release. Only release title and notes can be modified.
✨ Features and improvements
- Drop the archived
@mapbox/whoots-jsdependency by inlining its singlegetTileBBoxhelper (#7838) (by @qorexdevs) - Debounce
setImagesbroadcast to once per animation frame, fixing O(n²) serialization overhead when adding many images (#7614) (by @bradymadden97)
🐞 Bug fixes
v6.0.0-18
Immutable
release. Only release title and notes can be modified.
✨ Features and improvements
- Improve terrain rendering performance by avoiding unnecessary terrain data lookups during Mercator render-to-texture passes (#7833) (by @DoFabien)
- Reduce allocation pressure while constructing DEM data and sampling terrain elevations (#7814) (by @DoFabien)
- Reuse terrain DEM texture when preparing terrain (#7813) (by @DoFabien)
🐞 Bug fixes
- Fix a memory leak where aborting a worker request (e.g. a GeoJSON tile load cancelled while panning) left its promise pending forever, so the awaiting async frame and everything it captured was never released;
Actor.sendAsyncnow rejects with anAbortErroron abort (#7826) (by @kamil-sienkiewicz-asi)
v6.0.0-17
Immutable
release. Only release title and notes can be modified.
✨ Features and improvements
⚠️ All map events are now real classes that are instantiated when they are fired. RenamedMapLibreZoomEventtoMapBoxZoomEvent, added therollstart/roll/rollendandstyle.load(asMapStyleLoadEvent) events toMapEventType, and added event classes and type-map forMarker,Popup,GeolocateControlandFullscreenControl. RemovedMapDataEvent: thedata/dataloading/dataabortevents are nowMapSourceDataEvent | MapStyleDataEvent, so source data events carry the full source info (sourceId,tile,sourceDataType, …). AddedMapMovementEventas the type for all camera-transition events (move/zoom/rotate/pitch/roll/dragand theirstart/endvariants).Eventedis now generic over an event-type map (Evented<EventType>) and isabstract, so subclasses get strongly-typedon/once/offautomatically without re-declaring overloads — this also types the events onCamera/Style(viaMapEventType) and on the sources (via the newSourceEventType) (#7789) (by @HarelM)
🐞 Bug fixes
v6.0.0-16
Immutable
release. Only release title and notes can be modified.
✨ Features and improvements
⚠️ Update maplibre-gl-style-spec to version 25, which has a breaking change in legacy expression validation (#7792) (by @HarelM)
🐞 Bug fixes
- Fix cross-origin module worker loading to preserve ESM semantics (#7796) (by @dangkyokhoang)
v6.0.0-15
Immutable
release. Only release title and notes can be modified.
✨ Features and improvements
- Add
fill-layer-opacityandline-layer-opacitypaint properties, which apply opacity to the entire layer output uniformly (#7570) (by @CommanderStorm) - Build main and worker in same build context to extract shared chunk (#7745) (by @dangkyokhoang)
🐞 Bug fixes
v6.0.0-14
Immutable
release. Only release title and notes can be modified.
✨ Features and improvements
- Revert the
line-opacity-driven offscreen rendering introduced in #7490 (#7764) (by @CommanderStorm). ⚠️ Removed the remaining mapbox references in the code and in the tests. This changes the#pragma mapboxto#pragma maplibrein case you have shader code that relied on it. (#7761) (by @HarelM)
🐞 Bug fixes
v6.0.0-13
Immutable
release. Only release title and notes can be modified.
✨ Features and improvements
- Improve
ProjectionDatamatrix backing types for renderer and custom layer projection matrices (#6316) (by @cat0825)
🐞 Bug fixes
- Fix camera jump on dragend with globe + terrain at low pitch (#7736) (by @kodeezabdullah)
- Fix web font rendering by awaiting document.fonts.load() before TinySDF instantiation (#7735) (by @kodeezabdullah)
- Remove the framebuffer completeness check that threw an unhandled
Framebuffer is not completeerror on transient GPU resource loss (e.g. when a tab wakes from sleep); incomplete framebuffers now self-heal on the next frame instead (#7303) (by @johanrd) ⚠️ Disable icon scaling with offset, this is a render breaking change which we have decided to incorporate in both maplibre-gl-js and maplibre-native (#7742) (by @springmeyer and @HarelM)