Breaking changes ⚠️
- 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. - 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.