Skip to content

Releases: maplibre/maplibre-gl-js

v5.15.0

17 Dec 07:34
Immutable release. Only release title and notes can be modified.
b457ca9

Choose a tag to compare

✨ Features and improvements

  • Support global state expression for layer visibility (#6659) (by melitele)
  • Update Node.js version to 24.11 for development (#6851) (by HarelM)

🐞 Bug fixes

  • Fix LngLatBounds#intersects returning false for bounds spanning 360° or more (#6863) (by @lucaswoj)
  • Fix getting the right zoom for getElevationForLngLat (#6825) (by @HarelM)
  • Fix stale transform state being applied after changing minZoom or maxZoom due to old copies from transformCameraUpdate taking precedence. transformCameraUpdate is now called from setMinZoom and setMaxZoom to allow user to control subsequent changes to zoom #6766 (by @Auspicus)
  • Fix GeoJSON source throwing with undefined properties #6730 (by @wayofthefuture)

v5.14.0

03 Dec 10:46
Immutable release. Only release title and notes can be modified.
50d412d

Choose a tag to compare

https://github.com/maplibre/maplibre-gl-js
Changes since MapLibre GL JS v5.13.0:

✨ Features and improvements

  • Prevent redundant DEM border backfilling by tracking state, moved tile manager logic to helper files (#6756) (by @HarelM)
  • Improve performance of GeoJSON updateData, setData, and overzoomed tiles (#6738, #6772) (by @lucaswoj)

🐞 Bug fixes

  • Handle consecutive duplicate points in offsetLine to avoid null values in the output. Fixes #5431 (by mmc1718)
  • ⚠️ Gracefully handle internal AbortErrors (e.g., when a TileJSON URL is updated while a request in flight). Previously, such aborted requests would throw an AbortError in an unhandled rejection that was not easily caught in user code. Since aborted requests are fully handled internally, these unhandled rejections were superfluous and resulted in unhelpful client errors. (#6747) (by @andrewda)
  • Fix canvas sources with power-of-2 dimensions rendering as black squares (#6607) (by Omkarthipparthi)
  • Fix queryTerrainElevation to use higher zoom level tiles when possible (#6791) (by @HarelM)
  • Fix unwanted movement when moving a pitched terrain map at high latitudes; fix freezes when moving a pitched and rotated terrain map at low zoom (#6775) (by @larsmaxfield)
  • Fix issue with static modifier as part of mlt package (#6796) (by @HarelM)
  • LngLatBounds#intersects now returns true when bounds touch along an edge or at a corner (#6802) (by @lucaswoj)

v5.13.0

14 Nov 21:56
Immutable release. Only release title and notes can be modified.
53cb799

Choose a tag to compare

https://github.com/maplibre/maplibre-gl-js
Changes since MapLibre GL JS v5.12.0:

✨ Features and improvements

  • Text labels can now include relatively uncommon Chinese, Japanese, Korean, and Vietnamese characters, as well as characters from historical writing systems. When using server-side fonts, the map may request glyph PBFs beyond U+FFFF from the server instead of throwing an error as before. (#6640) (by @1ec5)
  • GeoJSON Source Diff: improve, abstract, refactor, optimize, and fix regressions. (#6681) (by @wayofthefuture)
  • GeoJSONSource setData and updateData waitForCompletion option (#6688) (by @wayofthefuture)
  • Improve performance of GeoJSONSource#updateData (#6668) (by @lucaswoj)
  • GeoJSON Worker Refactor (#6702) (by @wayofthefuture)

🐞 Bug fixes

v5.12.0

09 Nov 07:18
Immutable release. Only release title and notes can be modified.
370565b

Choose a tag to compare

https://github.com/maplibre/maplibre-gl-js
Changes since MapLibre GL JS v5.11.0:

✨ Features and improvements

  • Add support for MapLibre Tiles (MLT) by using encoding: 'mlt' in vector source definition (#6570) (by @Salkin975 and @HarelM)
  • Slice vector tiles to improve over scale vector handling (#6521). It adds the experimentalZoomLevelsToOverscale flag to MapOptions to allow controlling how many zoom levels to slice and how many to scale. It seems to have better performance at high zoom levels. It can prevent Safari crashes in some scenarios by setting it to 4 or less. (by @HarelM)
  • Add reduceMotion option to Map Options (#6661) (by @wayofthefuture)

🐞 Bug fixes

  • Fix missing constrainOverride setter in TransformHelper.apply (#6642) (by @larsmaxfield)
  • Fix blank map after WebGL context restore (#6242) (by @ToHold)

v5.11.0

03 Nov 22:18
Immutable release. Only release title and notes can be modified.
25d189b

Choose a tag to compare

https://github.com/maplibre/maplibre-gl-js
Changes since MapLibre GL JS v5.10.0:

✨ Features and improvements

  • Improve performance of GeoJSONSource#updateData when called on small diffs (#6562) (by @lucaswoj)
  • If the stylesheet lacks a glyphs property at the root level, interpret the text-font property as a cascading fallback list of font names and render all text using local or system fonts. (#4564) (by @1ec5)
  • ⚠️ Refactor SourceCache to TileManager (#6635) - this is not a breaking change since SourceCache is not part of the public API, but if you have a plugin that uses internal stuff, it might break... (by @wayofthefuture)

🐞 Bug fixes

  • If a required glyph PBF is unavailable or it lacks a glyph for a character in a text-field, try to render it locally instead of crashing. (#4564) (by @1ec5)
  • Export now() function in timeControl API to complete the API and enable external code to read controlled time (#6644) (by @bjperson)
  • ScaleControl CSS styling contains white-space: nowrap to prevent wrapping (#6647) (by @stroebjo)
  • Fix edge fading for unloaded tiles (#6650) (by @wayofthefuture)

v5.10.0

26 Oct 08:15
Immutable release. Only release title and notes can be modified.
93634b0

Choose a tag to compare

https://github.com/maplibre/maplibre-gl-js
Changes since MapLibre GL JS v5.9.0:

✨ Features and improvements

  • Add time control API (setNow, restoreNow, isTimeFrozen) for deterministic rendering, enabling frame-by-frame video export and deterministic testing (6544)
  • Use styles isHidden logic in the worker by adding a new optional roundMinZoom parameter (#6547)
  • Add transformConstrain callback to the Map options to override the transform's constrain with new type TransformConstrainFunction; refactor transform constructor options to a TransformOptions object (#6484)
  • Use timeControl.now() instead of browser.now() (6573)

🐞 Bug fixes

  • Contextmenu events not blocked by scrolling (#5683
  • Mousemove events are not blocked by scrolling (#6302)
  • Dashed lines have blurry rounded caps (#6554)
  • Preserve flyTo padding when prefers-reduced-motion is enabled (#6576)
  • Fix setClusterOptions not triggering recluster when no data changes are pending (#6603)

v5.9.0

09 Oct 11:49
Immutable release. Only release title and notes can be modified.
14f56b0

Choose a tag to compare

https://github.com/maplibre/maplibre-gl-js
Changes since MapLibre GL JS v5.8.0:

✨ Features and improvements

  • Improve fading - dynamic bi-directional raster cross-fading and self fading (#6469)
  • Support for usage of line-gradient together with line-dasharray (#6487)

🐞 Bug fixes

  • Added button role to marker div to fix accessibility issues with the aria-label (#6435)
  • Fix a crash on iOS when there are too many symbols to render (#6526)

v5.8.0

30 Sep 13:02
Immutable release. Only release title and notes can be modified.
f71040d

Choose a tag to compare

https://github.com/maplibre/maplibre-gl-js
Changes since MapLibre GL JS v5.7.3:

✨ Features and improvements

  • Enable documentation admonitions in Material for MkDocs. (#6455)
  • Switch MapEventType from type to interface to allow declaration merging (#6436)
  • Implement data-driven styling support for line-dasharray (#5812)

🐞 Bug fixes

  • Fix raster flickering when using terrain 3D and optimize terrain logic.
  • Fix issue where parent tiles are retained when deeper descendant tiles already cover the missing ideal tile. (#6442)
  • Fix an issue when GeolocateControl fires outofmaxbounds event with trackUserLocation disabled (#6464)
  • Fix an issue with globe+terrain "zooming" in when dragging towards the poles (#6470)
  • Fix integer overflow in symbol placement (#6476)

v5.7.3

19 Sep 12:41
8895e41

Choose a tag to compare

https://github.com/maplibre/maplibre-gl-js
Changes since MapLibre GL JS v5.7.2:

✨ Features and improvements

🐞 Bug fixes

  • Fix case where retain loaded children does not retain uppermost loaded children (#6399)
  • Fix an issue with spread operator that caused issues in Angular and esbuild (#6438)

v5.7.2

17 Sep 09:24
ad231b1

Choose a tag to compare

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

🐞 Bug fixes

  • Fix _updateRetainedTiles checking for children when children length is 1 overscaled tile "child" (#6388)
  • Fix evaluating global-state for layers added after loading style (#6361)
  • Change the pathway for passing global-state object from Style to expression to fix a hack that was introduced in previous versions (#6366)
  • Fix triggering load and idle events when source TileJSON fails to load (#5430)
  • Fix mouse events on heatmap features (#714)