Skip to content

Releases: maplibre/maplibre-gl-js

v5.20.0

Choose a tag to compare

@github-actions github-actions released this 10 Mar 23:10
Immutable release. Only release title and notes can be modified.
e9478ae

✨ Features and improvements

🐞 Bug fixes

  • Fix: Distance to tile is calculated incorrectly in globe projection for high pitch angles (#7219) (by @jtfedd)
  • Fix: Tiles are not cleared when using vector tile source setUrl/setTiles (#7185) (by @madoci)
  • Fix: Allow opaque origins ("null") in Actor message filtering (#7047) (by @pcardinal)

v5.19.0

Choose a tag to compare

@github-actions github-actions released this 23 Feb 07:48
Immutable release. Only release title and notes can be modified.
91dd083

✨ Features and improvements

  • Change the return type of LngLatBounds.toArray() to use a more precise type (#7156) (by @n4n5)
  • Add anisotropicFilterPitch map option to set the pitch above which the anisotropic filter is applied to all raster layers, the default of which is 20° (#7134) (by larsmaxfield)
  • Add source id to error message (#7107) (by HarelM)

🐞 Bug fixes

  • Fix SDF icon-text-fit rendering by correctly unpacking packed shader values in symbol_sdf.vertex.glsl, with render-test coverage (#7141, fixes #6953) (by @pcardinal)
  • Fix correct bounds calculation for GeoJSON with elevation (#6963) (by @simonmnt)
  • Fix: support elevation in bounds calculation (#7135) (by simonmnt)
  • Fix Firefox "Alpha-premult deprecated for non-DOM uploads" warning (#7128) (by @birkskyum)
  • Fix raster tiles rendering with glyph/icon atlas content after WebGL context loss (#7126) (by @birkskyum)
  • Fix popup tip in RTL pages (#7157) (by @HarelM)

v5.18.0

Choose a tag to compare

@github-actions github-actions released this 10 Feb 15:55
Immutable release. Only release title and notes can be modified.
a54d3d6

✨ Features and improvements

  • Add support for click events on Marker (#7028) (by @ganesh8068)
  • Simplify and abstract the GeoJSON Worker (#7058) (by @wayofthefuture)
  • Add pseudo option to FullscreenControl to force CSS-based fullscreen mode instead of native fullscreen API. Users might want this because this is faster on some devices (#7076) (by @CommanderStorm)
  • Migrate our API docs to zensical (#7071) (by CommanderStorm)

🐞 Bug fixes

  • Fix WebGL context loss error when style is not yet loaded (#7094) (by @kaigritun)
  • Fix updating terrain tiles on feature state changes (#6231) (by @pstaszek)
  • Fix LngLatBounds.intersects for zero-width bounds (#7055) (by @lucaswoj)
  • Fix GlobeControl not updating when Map.setProjection() is called programmatically (#7005, #7075) (by @CommanderStorm)
  • Fix map.getProjection() returning undefined after calling map.setProjection() with the default "mercator" projection (#7072)
  • Fix incorrect text placement along line in 3D mode (#7039) (by @russellporter)
  • When the prefers-reduced-motion media query is active, we now no longer display the pulsing GeoLocation animation (#7066) (by @CommanderStorm)

v5.17.0

Choose a tag to compare

@github-actions github-actions released this 27 Jan 15:33
Immutable release. Only release title and notes can be modified.
e00b513

✨ Features and improvements

  • Refactor _updateWorkerData (#6983) (by @wayofthefuture)
  • ⚠️ Add zoomSnap option to Map to allow snapping zoom levels to a grid when zooming in and out; aligns the behavior across all UI patterns (keyboard, scroll wheel, on-screen zoom buttons, double-click, double-tap). Previously, pressing +/- on the keyboard zoomed to rounded whole integers, more or less than 1 zoom level when starting from a fractional zoom. Now any number can be specified for zoomSnap; a value of 1.0 produces the rounded whole integer behavior across all UI patterns. (#6941) (by @mizmay)
  • Add support for container elements from different windows (e.g., popup or iframe) (#6969) (by @Syncret)
  • Migrate to @maplibre/geojson-vt (#6995) (by @HarelM)

🐞 Bug fixes

  • Fix incorrect shader selection for text labels with inline images (#6956) (by @ciscorn)
  • Fix marker positions not updating when zoom or pitch are changed following a change in constraints (#6925) (by auspicus)

v5.16.0

Choose a tag to compare

@github-actions github-actions released this 12 Jan 10:01
Immutable release. Only release title and notes can be modified.
b8f3442

✨ Features and improvements

  • Add padding option to Popup class to prevent popups from being positioned too close to map container edges (#5978) (by @yuiseki and @lucaswoj)
  • Emit style.load event on style diff (#6880) (by lesbaa)

🐞 Bug fixes

  • Fix setting visibility on custom layer (#6883) (by melitele)
  • Hide leading and trailing control characters in format expressions (#6907) (by 1ec5)
  • Fix image sources being clipped at -180 and 180 longitude when terrain is enabled (#4088) (by pstaszek)
  • Fix map not immediately constraining to a valid zoom and center when changing projections (#6892) (by larsmaxfield)
  • Fix a blank map when a resize event is triggered before a WebGL context restoration (#6935) (by ToHold)
  • Diffed changes when json is passed to setStyle emit a style.load event. (#2587, #4757) (by @lesbaa)
  • Fix a precision issue in the atomsphere shader in globe projection. (#6916) (by tavimori)

v5.15.0

Choose a tag to compare

@github-actions github-actions released this 17 Dec 07:34
Immutable release. Only release title and notes can be modified.
b457ca9

✨ 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

Choose a tag to compare

@github-actions github-actions released this 03 Dec 10:46
Immutable release. Only release title and notes can be modified.
50d412d

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

Choose a tag to compare

@github-actions github-actions released this 14 Nov 21:56
Immutable release. Only release title and notes can be modified.
53cb799

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

Choose a tag to compare

@github-actions github-actions released this 09 Nov 07:18
Immutable release. Only release title and notes can be modified.
370565b

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

Choose a tag to compare

@github-actions github-actions released this 03 Nov 22:18
Immutable release. Only release title and notes can be modified.
25d189b

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)