✨ Features
- Add
promoteId
option to use a feature property as ID for feature state (#8987) - Add a new constructor option to
mapboxgl.Popup
,closeOnMove
, that closes the popup when the map's position changes (#9163) - Allow creating a map without a style (an empty one will be created automatically) ( h/t @stepankuzmin ) (#8924)
map.once()
now allows specifying a layer id as a third parameter making it consistent withmap.on()
(#8875)
🍏 Improvements
- Improve performance of raster layers on large screens (#9050)
- Improve performance for hillshade and raster layers by implementing a progressive enhancement that utilizes
ImageBitmap
andOffscreenCanvas
(#8845) - Improve performance for raster tile rendering by using the stencil buffer (#9012)
- Update
symbol-avoid-edges
documentation to acknowledge the existence of global collision detection (#9157) - Remove reference to
in
function which has been replaced by thein
expression (#9102)
🐞 Bug Fixes
- Change the type of tile id key to string to prevent hash collisions (#8979)
- Prevent changing bearing via URL hash when rotation is disabled (#9156)
- Fix URL hash with no bearing causing map to fail to load (#9170)
- Fix bug in
GeolocateControl
where multiple instances of the control on one page may result in the user location not being updated (#9092) - Fix query
fill-extrusions
made from polygons with coincident points and polygons with less than four points (#9138) - Fix bug where
symbol-sort-key
was not used for collisions that crossed tile boundaries (#9054) - Fix bug in
DragRotateHandler._onMouseUp
getting stuck in drag/rotate (#9137) - Fix "Click on Compass" on some mobile devices (add
clickTolerance
toDragRotateHandler
) (#9015) (h/t Yanonix)