github maplibre/maplibre-gl-js v5.0.0

8 days ago

https://github.com/maplibre/maplibre-gl-js
Changes since MapLibre GL JS v4.7.1:

✨ Features and improvements

  • ⚠️ StyleLayer's queryIntersectsFeature method parameters were moved to QueryIntersectsFeatureParams. (#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 and failIfMajorPerformanceCaveat must now be defined inside the canvasContextAttributes object on MapOptions.
  • ⚠️ Change the return type of on method to return a Subscription 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 use in 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 inside canvasContextAttributes 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 JavaScript Sets 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)

Don't miss a new maplibre-gl-js release

NewReleases is sending notifications on new releases.