✨ Features
- Add
promoteIdoption 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
ImageBitmapandOffscreenCanvas(#8845) - Improve performance for raster tile rendering by using the stencil buffer (#9012)
- Update
symbol-avoid-edgesdocumentation to acknowledge the existence of global collision detection (#9157) - Remove reference to
infunction which has been replaced by theinexpression (#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
GeolocateControlwhere multiple instances of the control on one page may result in the user location not being updated ()