🍏 Features
- Introduce
text-writing-mode
symbol layer property to allow placing point labels vertically. #8399 - Extend variable text placement to work when
text/icon-allow-overlap
is set totrue
. #8620 - Allow
text-color
to be used in formatted expressions to be able to draw different parts of a label in different colors. #8068
✨ Improvements
- Improve tile loading logic to cancel requests more aggressively, improving performance when zooming or panning quickly. #8633
- Display outline on control buttons when focused (e.g. with a tab key) for better accessibility. #8520
- Improve the shape of line round joins. #8275
- Improve performance of processing line layers. #8303
- Improve legibility of info displayed with
map.showTileBoundaries = true
. #8380 (h/t @andrewharvey) - Add
MercatorCoordinate.meterInMercatorCoordinateUnits
method to make it easier to convert from meter units to coordinate values used in custom layers. #8524 (h/t @andrewharvey) - Improve conversion of legacy filters with duplicate values. #8542
- Move out documentation & examples website source to a separate
mapbox-gl-js-docs
repo. #8582
🐞 Bug Fixes
- Fix a bug where local CJK fonts would switch to server-generated ones in overzoomed tiles. #8657
- Fix precision issues in deck.gl-powered custom layers. #8502
- Fix a bug where fill and line layers wouldn't render correctly over fill extrusions when coming from the same source. #8661
- Fix map loading for documents loaded from Blob URLs. #8612
- Fix classification of relative file:// URLs when in documents loaded from a file URL. #8612
- Remove
esm
from packagedependencies
(so that it's not installed onnpm install mapbox-gl
). #8586 (h/t @DatGreekChick)