https://github.com/maplibre/maplibre-gl-js
Changes since MapLibre GL JS v4.7.1:
✨ Features and improvements
- ⚠️
StyleLayer
'squeryIntersectsFeature
method parameters were moved toQueryIntersectsFeatureParams
. (#5276) Wrap the method parameters with{}
to solve this - ⚠️ Support setting WebGL context options on map creation (#5196). Previously supported WebGL context options like
antialias
,preserveDrawingBuffer
andfailIfMajorPerformanceCaveat
must now be defined inside thecanvasContextAttributes
object onMapOptions
. - ⚠️ Change the return type of
on
method to return aSubscription
to allow for easy unsubscribe (#5080).map.on('x').on('y')
=>map.on('x'); map.on('y');
. - ⚠️ Change drag rotate behavior to be around the center of the screen (#5074)
- ⚠️ Return actual altitude from queryTerrainElevation + Pass non-translated matrices to custom layer on mercator map (#3854)
- ⚠️ Changed
geometry-type
to identify "Multi-" features (#4877). Use$type
for non "Multi-" support or usein
expression to get the previous behavior. - ⚠️ Remove unminified prod build (#4906). You'll need to use a different build.
- Allows setting the desired WebGL version to use (#5236). You can now use
contextType
insidecanvasContextAttributes
to choose which WebGL version to use - Dual-Stack WebGL Runtime with WebGL2 to WebGL1 Fallback (#5198)
- Add support for projection type expression as part of a refactoring of the transfrom and projection classes (#5139)
- Export
Event
class (#5016) - Support Vertical Perspective projection (#5023)
- When clustering circles and the promoteId is set to some parameter, the promoted ID is used on non-clustered features and the cluster_id is used on clustered features. Previously the ID was undefined for non-clustered features (#4899)
- Support Terrain in Globe projection (#4976)
- Improved performance of the
coveringTiles
(tile culling) function for globe (#4937) - Catches network fetching errors such as CORS, DNS or malformed URL as actual
AJAXError
to expose HTTP request details to the"error"
event (#4822) - Add setVerticalFieldOfView() to public API (#4717)
- Disable sky when using globe and blend it in when changing to mercator (#4853)
- New GlobeControl (#4960)
- Add support for pitch > 90 degrees (#4717)
- Add support for camera roll angle (#4717)
- Improve performance of
queryRenderedFeatures
by using JavaScriptSet
s to assess layer membership internally (#4777) - Support globe mode (#3963)
- Merge atmosphere and sky implementation (#3888)
- Add option to display a realistic atmosphere when using a Globe projection (#3888)
🐞 Bug fixes
- ⚠️ Fix level of detail at high pitch angle by changing which tiles to load (#3983)
- Fix holes at the poles when terrain is used with globe (#5232)
- Fix geometry artifacts when globe terrain is zoomed out too much (#5232)
- Fix center being incorrectly constrained when using globe (#5186)
- Fix atmosphere improperly blending into the background (#5235)
- Fix parsing wrong hash location (#5131)
- Fix swallowing of errors (#4532)
- Fix erroring requests not reported on
error
handler (#4613) - Fix children not retained when using globe (#5271)
- Fix symbol size increasing when looking from poles (#5275)
- Fix globe custom layers being supplied incorrect matrices after projection transition to mercator (#5150)
- Fix custom 3D models disappearing during projection transition (#5150)
- Fix regression in NavigationControl compass on Firefox and Safari browsers (#5205)
- Fix smooth mouse wheel zooming (#5154)
- Change drag rotate behavior to be less abrupt around the center (#5104)
- Fix regression in render world copies (#5101)
- Fix unwanted roll when motion is interrupted (#5083)
- Fix
geometry-type
filter expression results (#5132) - Fix easeTo not applying padding in globe projection (#5134)
- Convert WebGL1 shaders to WebGL2 (#5166)
- Fixes line flickering problem (#5094)
- Fix poor performance in Chrome related to passing matrices to WebGL (#5072)
- Fixes scale control for globe on zoom out (#4897)
- Fixes cooperative gestures displaying the mobile help text when screen width is smaller than 480px on non-touch devices (#5053)
- Fixes incorrect cluster radius scaling in
GeoJSONSource.setClusterOptions()
(#5055) - Improve innerHTML handling in code (#5057))
- Fix geometry beyond tile borders being rendered (#4868)
- Fix line-placed map-pitch-aligned texts being too large when viewed from some latitudes on a globe (#4786)
- Disabled unsupported Fog rendering, for Terrain3D on Globe (#4963)
- Fix issue where raster tile source won't fetch updates following request error (#4890)
- Fix 3D models in custom layers not being properly occluded by the globe (#4817)
- Fix issue where raster tiles were not rendered correctly when using globe and terrain (#4912)
- Fix text not being hidden behind the globe when overlap mode was set to
always
(#4802) - Fix a single white frame being displayed when the map internally transitions from mercator to globe projection (#4816)
- Fix loading of RTL plugin version 0.3.0 (#4860)
- Fix a memory leak due to missing removal of event listener registration (#4824)
- Improve symbol collision performance for both mercator and globe projections (#4778)
- Fix bad line scaling near the poles under globe projection (#4778)
- Fix globe loading many tiles at an unnecessarily high zoom level when the camera is pitched (#4778)