github maplibre/maplibre-gl-js v3.0.0

latest releases: v4.1.3, v4.1.2, v4.1.1...
11 months ago

https://github.com/maplibre/maplibre-gl-js
Changes since MapLibre GL JS v3.0.0-pre.9:

New features and improvements

  • Add transformCameraUpdate callback to Map options (#2535)
  • Bump KDBush and supercluster for better memory efficiency (#2522)
  • Improve performance by using HTMLImageElement to download raster source images when refreshExpiredTiles tiles is false (#2126)
  • Set fetchPriority for HTMLImageElement to help improve raster-heavy scenarios (#2459)
  • Reduce rendering calls on initial load. No reason to try rendering before the style is loaded. (#2464)
  • Lazy load default style properties on demand to improve loading performance and reduce memory usage. (#2476)
  • Add queryTerrainElevation allows getting terrain elevation in meters at a specific point (#2264)
  • Improve performance by sending style layers to the worker thread before processing it on the main thread to allow parallel processing (#2131)
  • Add Map.getImage() to retrieve previously-loaded images. (#2168)
  • Add a method to enable/disable cooperative gestures
  • Update CONTRIBUTING.md with details on setting up on M1 mac (#2196)
  • Update default type of originalEvent in MapLibreEvent to be unknown (#2243)
  • Improve performance when forcing full symbol placement by short-circuiting pause checks (#2241)
  • Adding a warnonce when terrain and hillshade source are the same (#2298)
  • Remove a deprecation warning by removing an empty texture that is no longer being used in the codebase (#2299)
  • Improve initial loading performance by lazy serializing layers only when needed. (#2306)
  • Add validateStyle MapOption to allow disabling style validation for faster performance in production environment. (#2390)
  • Add setiClusterOptions to update cluster properties of the added sources: fixing these issues (#429) and (#1384)
  • Add types for workerOptions and _options in geojson_source.ts
  • Add fullscreenstart, fullscreenend events to FullscreenControl (#2128
  • Throttle the image request queue while the map is moving to improve performance (#2097
  • Add support for multiple sprite declarations in one style file (#1805)
  • Extract sprite image on demand to reduce memory usage and improve performance by reducing the number of getImageData calls (#1809)
  • QueryRenderedFeaturesOptions type added to both of the params in queryRenderedFeatures in map.ts (#1900)
  • NavigationControlOptions is now optional when creating an instance of NavigationControl (#1754)
  • Listen to webglcontextcreationerror event and give detailed debug info when it fails (#1715)
  • Make sure cooperativeGestures overlay is always "on top" (z-index) of map features (#1753)
  • Use willReadFrequently hint to optimize 2D canvas usage and remove warnings (#1808)
  • Speed up the cross tile symbol index in certain circumstances (#1755)
  • Improve rendering speed in scenes with many colliding symbolic icons and labels (#1757)
  • Make request for ImageSource cancelable (#1802)
  • Throttle the image request queue while the map is moving to improve performance (#2097)
  • Return a promise from once method to allow easier usage of async/await in this case (#1690)
  • Add pseudo (CSS) fullscreen as a fallback for iPhones (#1678)
  • Add updateData to GeoJSONSource which allows for partial data updates (#1605)
  • Add a RenderPool to render tiles onto textures for 3D (#1671)
  • Add map.getCameraTargetElevation() (#1558)
  • Add freezeElevation to AnimationOptions to allow smooth camera movement in 3D (#1514, #1492)
  • Add map.setStyle's transformStyle option (#1632)

Potentially breaking changes

Most of these changes will not affect your code but read carefully through the list to asses if a migration is needed.

  • ⚠️ Cancel unloaded tile request on zooming in across multiple zooms. Previously these requests were not cancelled. (#2377)
  • ⚠️ Resize map when container element is resized. The "resize"-related events now has different data associated with it (#2157, #2551). Previously the originalEvent field was the reason of this change, for example it could be a resize event from the browser. Now it is ResizeObserverEntry, see more here.
  • ⚠️ Improve rendering of areas below sea level, and remove elevationOffset workaround (#1578)
  • ⚠️ Remove support for hsl css color in a format that does not comply with the CSS Color specification. Colors defined in hsl(110, 0.7, 0.055) format will no longer work, instead it is recommended to use the format with percentages hsl(110, 70%, 5.5%). (#2376)
  • ⚠️ Move terrain object from style.terrain to map.terrain (#1628)
  • ⚠️ Remove deprecated mapboxgl- css classes (use maplibregl- instead) (#1575)
  • ⚠️ Full transition from WebGL1 to WebGL2 (browser support) (#2512, #1891)
  • ⚠️ LngLat.toBounds() is replaced by a static method LngLatBounds.fromLngLat() (#2188)
  • ⚠️ Make geojson data source a required field to align with the docs (#1396)
  • ⚠️ Improve control initial loading performance by forcing fadeDuration to 0 till first idle event (#2447)
  • ⚠️ Remove "mapbox-gl-supported" package from API. If needed, please reference it directly instead of going through MapLibre. (#2451)
  • ⚠️ Improve control performance by restricting worker count to a max of 1 except for Safari browser. (#2354)

Bug fixes

  • Fix of incorrect dash in diagonal lines with a vector source at some zoom levels. (#2479)
  • Fix event.isSourceLoaded to reflect the state of source loading for sourcedata event (#2543)
  • Fix overlapping of 3D building parts when 3D Terrain is activated (#2513)
  • Show 3D buildings located below sea level when 3D Terrain is activated (#2544)
  • Fix LngLatBounds.extend() to correctly handle { lng: number, lat: number } coordinates. (#2425)
  • Fix the accuracy-circle in the geolocate control from randomly resizing. (#2450)
  • Fix the type of the features property on MapLayerMouseEvent and MapLayerTouchEvent to be MapGeoJSONFeature[] in lieu of GeoJSON.Feature[] (#2244)
  • Fix GeolocateControl error if removed quickly (#2391)
  • Fix issue unloading sprite sheet when using setStyle(style, {diff:true}) (#2146)
  • Fix wrap coords in getTerrain when fitBounds across the AM (#2155)
  • Fix LngLat toArray method return type to [number,number] (#2233)
  • Fix handling of text-offset with symbol-placement: line (#2170 and #2171)
  • Fix geolocate control permissions failure on IOS16 web view with fallback to window.navigator.geolocation (#2359)
  • Prevent unnecessary reload of raster sources when RTL Text Plugin loads (#2380)
  • Fix Handle AddProtocol callback function returning an HTMLImageElement (#2393](#2393))
  • Fix raster tiles being retained when raster-fade-duration is 0 (#2445, #2501)
  • Fix the worker been terminated on setting new style (#2123)
  • Change how meta key is detected for cooperative gestures
  • Fix the worker been terminated on setting new style (#2123)
  • Fix issue #1024 - Zoom center not under cursor when terrain is on
  • Fix errors when running style-spec bin scripts and added missing help. Removed unnecessary script 'gl-style-composite'. (#1971)
  • Fix the slice expression type (#1886)
  • Remove dependency on @rollup/plugin-json, which was in conflict with rollup-plugin-import-assert
  • Remove dependency on @mapbox/gazetteer which caused some build warnings (#1757 #1898)
  • Fix getElevation() causing uncaught error (#1650).
  • Fix headless benchmark execution especially on VM (#1732)
  • fix issue #860 fill-pattern with pixelRatio > 1 is now switched correctly at runtime. (#1765)
  • Fix the exception that would be thrown on map.setStyle when it is passed with transformStyle option and map is initialized without an initial style. (#1824)
  • Fix the behavior of the compass button on touch devices. (#1852)
  • Fix GeoJSONSource appearing to never finish loading when calling its setData method immediately after adding it to a Map due to it not firing a metadata data event (#1693)
  • Fix the gap between terrain elevated tiles (#1602)
  • Fix showTileBoundaries to show the first vector source #1395
  • Fix match expression type (#1631)
  • Fix for blurry raster tiles due to raster tiles requests stuck in image queue. (#2511)

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

NewReleases is sending notifications on new releases.