✨ Features and improvements
- Support the style specification's
font-facesproperty, withmap.setFontFacesandmap.getFontFacesand improve complex script languages such as Devanagari, Khmer, Burmese and Hebrew (#8237) (by @HarelM) - Wrap Thai, Khmer, Burmese, Lao, Tibetan, Javanese and Balinese labels at word boundaries instead of running them on in one line, which applies to every style whether or not it declares
font-faces(#8237) (by @HarelM) - Throw
GPUInitializationErrorfrom theMapconstructor when the WebGL2 context cannot be created, instead of firing anerrorevent no listener can catch and returning a partially constructed map (#8066) (by @johncarmack1984) - Allow adding an image source without a
url. The source starts empty and makes no network request; callupdateImage({image})orupdateImage({url})later to show an image (#8167) (by @mondsichtung) - Skip symbol re-placement when its inputs are unchanged, so repaints from animated style images or custom layers cost a single frame (#8208) (by @lucaswoj)
- Add
Style#triggerSymbolPlacement, which re-places symbols when something the map cannot see for itself has moved them (#8208) (by @lucaswoj) - Make
{validate: false}skip the style snapshot the style setters only build as error context, so adding layers one at a time no longer serializes the whole style on every call (#8259) (by @lazerg)
🐞 Bug fixes
- Disable the navigation control's zoom-out button when viewport constraints prevent zooming out further (#5316) (by @miakh)
- Keep a vector tile's etag when the tile is reloaded after a style change, so the next expiry refresh can still skip unchanged tiles (#3309) (by @johncarmack1984)
- Fix
project()andqueryTerrainElevationdisagreeing with the rendered terrain surface when the elevation lookup sampled a different DEM zoom than the drawn mesh (#8212) (by @johncarmack1984) - Draw numbers (e.g. “21” in “반포대로21길”) and short uppercase codes (e.g. “A1”) upright in vertical line labels instead of rotating them along the line (#5404) (by @NEKOYASAN)
- Fix the camera jumping at the end of a pan or zoom gesture on terrain by sampling the center elevation from the rendered terrain surface (#7989, #3982) (by @johncarmack1984)
- Ensure style state defaults are serialized (#8263) (by @hiddewie)