v1.9.4
🐞
Bug fixes
- Fix tile gaps in Chromium-based browsers (#8891 by @IvanSanchez)
- Fix vector drifts when
zoomAnimation
isfalse
and zooming viaflyTo
or pinch (#8794 by @plainheart) - Ensure
toGeoJSON()
still works with an empty array (#8737 by @Falke-Design) - Ensure
LineUtil
andPolyUtil
only iterate over array values and not properties (#8840 by @Falke-Design) - Fix rounding errors in center calculation of
LineUtil
andPolyUtil
for small layers (#8784 by @Falke-Design) - Prevent unwanted layer toggle while expanding the Layers control on mobile (#8910 by @Falke-Design)
- Fix an error when a focusing on a
Tooltip
-boundFeatureGroup
that contains a layer without agetElement
method (#8890 by @Falke-Design) - Fix
Tooltip
is not showing when loaded dynamically while moving the map (#8672 by @theGOTOguy) - Fix
noMoveStart
option not applying tofitBounds
(#8911 by @AbdullahSohail-SE) - Fix outlines showing up when interacting with the map on Safari 16.4+ (#8917 by @jonkoops)
v1.9.3
🙌
Accessibility
- Expand the layers control on Enter keydown (#8556 by @larsgw)
- Align the scale control's alpha transparency with the attribution control (#8547 by @Malvoz)
- Allow the scale control's text to overflow the container (#8548 by @Malvoz)
🐞
Bug fixes
- Remove internal usage of
L
global (#8536 by @mourner) - Fix intermittent wobble when using
setMaxBounds(map.getBounds())
(#8534 by @rjackson) - Ensure that
latLngsToCoords()
does not return references passed to it (#7344 by @marlo22) - Ensure
worldCopyJump()
behavior is consistent when using a keyboard (#8562 by @Falke-Design) - Ensure correct target is used for the
popupopen
event (#8571 by @Belair34) - Prevent recursion when panning a
Popup
(#8520 by @rjackson) - Support CSS
position: sticky
for map container (#8550 by @tmiaa)
v1.9.2
🐞
Bug fixes
-
⚠️ Drop ESM entrypoint from package because of numerous compatibility issues with plugins (importleaflet/dist/leaflet-src.esm.js
explicitly instead to take advantage; ESM by default will come in v2) (#8493 by @jonkoops) - Fix a bug where tooltips could throw an error with canvas renderer (#8498 by @Falke-Design)
- Fix a bug with incorrect marker popup location when there are multiple markers registered to the same popup (#8523 by @raychanks).
🧪
Tests
- Fix unit tests suite stopping abruptly on Mac (#8478)
📝
Docs
- Fix
Bounds
equals
parameters in docs (#8500 by @Falke-Design)
v1.9.1
- Fix
Events
listens
not propagating to parent objects, in particular fixing compatibility with Leaflet.markercluster plugin (#8211 by @Falke-Design)
v1.9.0
⚡
Note on future versions
The v1.9 release is setting the stage for the first major version bump of Leaflet since 2016! A lot has changed since then, and it's time for Leaflet to grow together with the web platform.
After this release, we are branching off the 1.x code and putting it in maintenance mode — reserving potential 1.x releases only for critical bugfixes. Although version 2.0 is still far away and will take some time to take shape, we plan to make the following changes:
- Dropping support for Internet Explorer. This has been a long time coming, but now that Internet Explorer is officially end-of-life, it's time to say goodbye. Going forward, Leaflet will move to an evergreen strategy that targets browsers like Firefox, Chrome, Edge and Safari.
- Embracing modern JavaScript. To maintain backwards compatibility, Leaflet is written entirely in ES5, a version of JavaScript supported by legacy browsers. So we have not been able to make use of many great JavaScript features (e.g. standardized classes, instead having to rely on our own implementation). By adopting a more modern version of the ECMAScript standard, we can start working towards aligning Leaflet with what is expected from a modern JavaScript library.
- Standardized modules. When we released Leaflet v1, the landscape in the JavaScript world was very different and full of competing module standards such as CommonJS, AMD and UMD. Today, ECMAScript modules have become the clear way forward to unite the JavaScript ecosystem under one banner. Moving forward, Leaflet will only be distributed in a single standardized module system, greatly reducing complexity of our distributed code.
- Removing the Leaflet global. As a developer using Leaflet, the capital letter
L
is probably intimately familiar to you. This is the Leaflet global where all of Leaflet's functionality lives. In order to allow compiler tooling to better eliminate dead-code through a process called tree-shaking, we are removing this global variable. To preserve backwards compatibility with older plugins, we will provide a shim that can be imported manually that will restore this functionality.
v1.9.0 changelog
⚠️
Breaking Changes
- Update
color-adjust
toprint-color-adjust
(#8211 by @Malvoz)
❇️
API changes
- Add
content
andlatLng
options toPopup
/Tooltip
constructors (#7783 by @Falke-Design) - Extend
Bounds
to have the same functions asLatLngBounds
(#7882 by @Falke-Design)
✨
Improvements
- Expose ESM entrypoint with Leaflet global (#8329 by @jonkoops)
- Update
getCenter()
calculation and move it toPolyUtil
/LineUtil
(#7603 by @Falke-Design) - Remove border styles in overflowing popups (#8260 by @Malvoz)
- Fix "listener not found" warning when setting
maxBounds
(#8168 by @mourner) - Remove "listener not found" warning (#8234 by @Falke-Design)
- Extend
Events.listens
to search for specific function (#8161 by @Falke-Design) - Add
noMoveStart
option topanTo
(#6685 by @Chivano) - Add
FeatureCollection
handling togeometryToLayer
(#8163 by @Falke-Design)
🙌
Accessibility
- Improve
Tooltip
accessibility (focus and voice over) (#8247 by @alekzvik) - Fix links in accessibility guide (#8198 by @Malvoz)
- Remove
role="presentation"
from image tiles (#8172 by @Malvoz)
🐞
Bug fixes
- Fix invalid GeoJSON on unbalanced arrays (#7637 by @steff1986)
- Fix 2 step zooming while using mouse wheel scrolling (#8298 by @Falke-Design)
- Fix wrong assigned parameter while calling
map._move
overrequestAnimFrame
(#8328 by @AMDvsTMD) - Fix
_isClickDisabled
to not throw no error if parent is removed from DOM (#8288 by @Falke-Design) - Fix
DomEvent.DoubleTap
to ignore clicks on<label>
s with afor
attribute (#8227 by @IvanSanchez) - Fix calling
once()
twice if same event is fired insideonce
(#8190 by @Falke-Design) - Fix
map.getCenter()
returning a mutable object (#8167 by @mourner) - Fix regression about popup close button modifying the URL (#8160 by @IvanSanchez)
- Fix
min/maxZoom
when used in combination withdetectRetina
(#7328 by @bozdoz)
📝
Docs
- Use preferred tile.openstreetmap.org URL (#8418 by @Firefishy)
- Use LocalStorage for dialog sessions (#8382 by @ChristopherWirtOfficial)
- Update anchor links for headers and in collapsed accordions (#7780 by @Falke-Design)
- Fix typo in reference-1.6.0.html (#8330 by @eltociear)
- Add pre-commit linting to CONTRIBUTING.md (#8299 by @Falke-Design)
- Ensure no borders on dialog iframe (#8296 by @Malvoz)
- Replace Mapbox with OpenStreetMap in tutorials and examples (#7818 by @Falke-Design)
- Remove DOCS-TODO.md (#8259 by @Malvoz)
- Better PosAnimation example (#7386 by @stell)
- Correct heading level in GeoJSON example (#8230 by @Malvoz)
- Update Overlay Tutorial (ImageOverlay, VideoOverlay, SVGOverlay) (#8090 by @KonstantinBiryukov)
- Change attribute
anchor
todata-anchor
(#8174 by @KnightJam1) - Fix bad markdown causing link to not work (#8156 by @freyfogle)
- A couple of site SEO fixes (#8229 by @Malvoz)
- Fix attribution flag 1px misalignment on some websites (#8170 by @mourner)
- Attribution flag now resizes with font-size changes (#8183 by @sumitsaurabh927)
- Add Dialog to website (#8177 by @Falke-Design and #8193, #8194 by @Malvoz)
🔧
Workflow
- Improve GitHub Workflows security (#8419 by @sashashura)
- Update development dependencies
- Replace deprecated
eslint-plugin-script-tags
(#8331 by @jonkoops) - Use major version ranges for Github Actions (#8286 by @jonkoops)
- Configure YAML issue forms (#8246 by @Malvoz)
- Add FUNDING.yml (@mourner)
- Add pre-commit hook to fix linting issues (#8212 by @jonkoops)
- Remove Dependabot specific labels (#8199 by @jonkoops)
- Use shorter bundlemon names (#8195 by @mourner)
- Make sure integrity hashes are generated for the built version (@mourner)
🧪
Tests
- Added test cases for
map.latLngToLayerPoint
method (#8407 by @kreloaded) - Add test for
map.panTo
(#8390 by @anurag-dhamala) - Add test for
map.containerPointToLatLng
andmap.latLngToContainerPoint
(#8384 by @abhi3315) - Add test for
Layer._addZoomLimit
(#8037 by @zishiwu123) - Add tests for
Map
(#8206 by @stephenspol) - Add test for
CircleMarker._containsPoint
(#8340 by @gernhard1337) - Add missing handler tests (#8182 by @Falke-Design)
- Cover Rectangle with unit Tests (#8144 by @stephenspol)
v1.8.0
v1.8.0 is a culmination of 1.5 years of development, a huge release focused on bug fixes, major reliability and accessibility improvements, cleaning up legacy code, and numerous improvements to documentation, development workflow and release process. A culmination of hundreds of contributions, and a preparation for bigger changes to come.
I'm making this release just as an air raid alert is sounding outside, in Kyiv, warning about an imminent Russian air strike. This release is dedicated to Ukrainian fight for freedom and democracy against the Russian invasion
From now on, releases will become much more frequent. Thanks to our amazing community for all your help and patience.
⚠️
Breaking Changes
- Improve reliability of
contextmenu
event simulation on mobile Safari by introducing a newTapHold
handler, replacing legacyTap
(#7026 by @johnd0e) - Reorganize
DivOverlay
/Popup
/Tooltip
APIs (#7540 by @johnd0e)- Move
Popup
related options fromDivOverlay
toPopup
(#7778 by @Falke-Design) - Change
Tooltip
class fromleaflet-clickable
toleaflet-interactive
(#7719 by @Falke-Design) Map.closeTooltip
now requires a layer as argument (#7533 by @johnd0e)
- Move
- Improve error / argument handling for event listeners (#7518 by @johnd0e)
- Improve reliability of touch events simulation on non-touch devices (
DomEvent.Pointer
) (#7059, #7084, #7415 by @johnd0e) - Improve reliability of
dblclick
event simulation on touch devices (DomEvent.DoubleTap
) (#7027 by @johnd0e) - Improve reliability of
disableClickPropagation
(#7439 by @johnd0e) - Improve
Map
hasLayer()
andLayerGroup
hasLayer()
to require a layer as argument (#6999 by @johnd0e) - Fix
Class.include
to not overwriteoptions
(#7756 by @johnd0e) - Fix
Class.extend
to not modify source props object (#6766 by @johnd0e) - Improve
Browser.touch
touch devices detection (#7029 by @johnd0e) - Get rid of legacy Android hacks (#7022 by @johnd0e)
- Allow fonts to respect users' browser settings by making the
font-size
relative to the map container. (You can change the font size onleaflet-container
to adjust it if needed.) (#7800 by @Chandu-4444)
❇️
API changes
- Make
DivOverlay
/Tooltip
interactive
(#7531, #7532 by @johnd0e) - Add
openOn
,close
,toggle
functions toDivOverlay
(#6639 by @johnd0e) - Introduce
DomEvent.off(el)
to remove all listeners (#7125 by @johnd0e) - Allow preventing round-off errors by passing
false
toUtil.formatNum
/toGeoJSON
(#7100 by @johnd0e) - Add
autoPanOnFocus
toMarker
(#8042 by @IvanSanchez) - Add
referrerPolicy
toTileLayer
(#7945 by @natevw) - Add
playsInline
toVideoOverlay
(#7928 by @Falke-Design) - Add
getCenter
toImageOverlay
(#7848 by @Falke-Design) - Fire a
tileabort
event when aTileLayer
load is cancelled (#6786 by @dstndstn) - Add
crossOrigin
toIcon
(#7298 by @syedmuhammadabid)
✨
Improvements
- Improve memory footprint by removing
will-change
CSS property on tile images (#7872 by @janjaap) - Improve reliability of icons path detection heuristics (#7092 by @johnd0e)
- Improve performance of adding tiled sources by avoiding excessive updates in
GridLayer.onAdd
(#7570 by @johnd0e) - Improve handling of edge cases in
panInside
(#7469 by @daverayment) - Minify marker icon SVG (#7600 by @rala72)
- Allow template keys with spaces in
TileLayer
URL (#7216 by @lubojr) - Improve behavior of
Tooltip
bound toImageOverlay
(#7306 by @IvanSanchez) - Remove the gap between Popup tip and content dialog (#7920 by @Malvoz)
- Fire
mousemove
through Canvas to map if it has no layers (#7809 by @johnd0e) - Add print styles to prevent printers from removing background-images in controls (#7851 by @Malvoz)
- Move attribution code from
Layer
toControl.Attribution
(#7764 by @johnd0e) - Refactor
vmlCreate()
so that it does not expose closure toTypeError
(#7279 by @darcyparker) - Improve reliability of
Control.Layers
by not relying on Browserandroid
andtouch
properties (#7057 by @johnd0e) - Improve reliability of
Tooltip
by not relying on Browsertouch
checks (#7535 by @johnd0e) - Make
Browser
mutable for easier automated testing (#7335 by @bozdoz) - Replace
div
withspan
inControl.Layers
container to fix an HTML validation error (#7914 by @tmiaa) - Add a Ukrainian flag to default attribution
🇺🇦 (by @mourner in https://github.com/Leaflet/Leaflet/pull/8109)
🙌
Accessibility
- Increase default font sizes and decrease attribution transparency for improved legibility (#8057, by @mourner)
- Improve accessibility of popup close button (#7908, by @Malvoz)
- Auto pan to markers on focus by default for improved keyboard operability (#8042 by @IvanSanchez)
- Add accessibility section to plugins guide (#7277 by @Malvoz)
- Update
Marker
to default torole="button"
&alt="marker"
for an improved screen reader experience (#7895 by @tmiaa) - Set
role="button"
for appropriate semantics on the<a>
layers control (#7850 by @Malvoz) - Generally enable outlines for keyboard users by not stripping
outline
on focus for keyboard events (#7259 by @jafin) - Enable outlines on
leaflet-container
for keyboard users (#7996 by @Malvoz) - Multiple enhancements to popup's close button (#7794 by @Falke-Design)
- Use relative
font-size
units for resizable text (#7800 by @Chandu-4444) - Apply
:hover
styles to:focus
as well (#7274 by @Malvoz) - Hide the decorative attribution separator from screen readers (#7969 by @Malvoz)
- Make the disabled state of zoom controls available to screen readers (#7280 by @akshataj96)
- Hide the +/- characters in zoom controls from screen readers to prevent erroneous announcements (#7795 by @Falke-Design)
🐞
Bug fixes
- Fix vector drift when dragging and immediately zooming (by @manubb @johnd0e @mourner in https://github.com/Leaflet/Leaflet/pull/8103)
- Reduce the occurrence of glitches on rapid zoom (by @mourner in https://github.com/Leaflet/Leaflet/pull/8102)
- Fix
Marker
jumping position while zooming in certain cases (#7967 by @Falke-Design) - Fix opening / closing
Tooltip
while dragging the map (#7862 by @Falke-Design) - Break the reference to the options of the
Class
prototype (#7459 by @Falke-Design) - Improve
Tooltip
optionspermanent
&sticky
to work together (#7563 by @Falke-Design) - Check if map container is still connected with Leaflet in
locate
event listener (#7813 by @Falke-Design) - Fix
Tooltip
bindTooltip
to unbind existent tooltip (#7633 by @Falke-Design) - Correct
if
condition, to add zoom limits for Layer (#7609 by @vcoppe) GridLayer
redraw tiles after changingmaxNativeZoom
(#6443 by @cherniavskii)- Fix
Popup
keepInView
if the map needs to panned over a long distance (#7792 by @Falke-Design) - Tolerate wrong event names in
add/removePointerListener
(#7808 by @johnd0e) - Reset width & padding to prevent cascading CSS from breaking tile rendering (#6843 by @Spudley)
- Fix
mousedown
event calling after draggingCanvas
map (#7781 by @johnd0e) - Decrease
console.warn
pollution (#7748 by @johnd0e) - Fix
contextmenu
event default-preventing when there are >1 target candidates (#7544 by @johnd0e) - Prevent click on
Popup
-tip from firing on map. (#7541 by @johnd0e) - Fix error by calling
Path.setStyle
before adding the layer to the map (#6941 by @NielsHolt) - Reset
BoxZoom
after cancel with ESC (#7597 by @Falke-Design) - Fix
noConflict
(#7855 by @Falke-Design) - Fix popup appearance when content is empty (#8136, by @ansh-ag)
- Fix
latLngToCoords
andlatLngsToCoords
not accepting array form of lat/lngs (#7436, by @Relkfaw)
📝
Docs
- Add a new Leaflet accessibility tutorial (#8081, by @Malvoz)
- Upgrade Code of Conduct to Contributor Covenant v2 and improve its visibility (#7984 by @mourner)
- Lint examples (#7827 by @mourner)
- Update usability in Docs (#7982, #7703, #7950, #7906, #7907, #7696, #7816, #7345, #7815, #7948, #7901 by @Falke-Design, @avioli, @Malvoz, @fulldecent, @saerdnaer, @MxDui)
- Typos / Fixes in Docs, Samples, ... (#7263, #7284, #7339, #7349, #7381, #7371, #7485, #7380, #7578, #7758, #7602, #7857, #7860, #7336, #7819 by @timgates42, @IvanSanchez, @ipovos, @elfalem, @BakuCity, @simon04, @user073, @Dev-Steven, @vanillajonathan, @aquelle-cp, @matkoniecz, @Falke-Design)
- Clarify
zoomend
event (#7460 by @xeruf) - Add
false
toprefix
ofControl.Attribution
(#7814 by @Falke-Design) LayerGroup
inherit fromInteractive Layer
(#7763 by @johnd0e)- Improve
Map.panInside
documentation (#7397 by @daverayment) - Update
Renderer
documentation to clarifytolerance
option is forCanvas
only (#7515 by @Hippl-Eric) - Add documentation for Event-Listener
propagate
argument (#7103 by @riffaud) - Fix an issue with top padding on non-API pages (#8083, by @wyankush)
🔧
Workflow
- Split
plugins.md
into many files for easier maintenance (#7805 by @Falke-Design) - Add Bundlemon to watch bundle size (#7934, #7983, #7905 by @jonkoops)
- Add
npm run serve
to serve docs on localhost (#7973 by @Falke-Design) - Rename
master
branch tomain
(#7921 by @jonkoops) - Upload files to AWS even if the file-size is the same (#7853 by @jonkoops)
- Remove
leaflet-include.js
fromdebug
samples (#7776 by @Falke-Design) - Lint adjustments (#7676, #7743, #7757 by @jonkoops, @mourner)
- Simplify release process (#7711, #7854, #7727, #8039 by @mourner)
- Simplify docs update process on release (#7730 by @mourner)
- Update dependencies and add Dependabot config (#7455, #7653, #7677, #7725 by @jonkoops)
- Split main workflow into multiple parallel jobs (#7710 by @jonkoops)
- Run CI on Github actions (#7691, #7654, #7702 by @jonkoops)
- Continue running tests even if one fails (#7723 by @jonkoops)
- Add https://github.com/Leaflet/Leaflet/labels/blocker check to release process (#8019 by @Malvoz)
- Remove all references of Bower (#7831 by @jonkoops)
- Add GitHub Actions dependency tracking with Dependabot (by @nathannaveen in https://github.com/Leaflet/Leaflet/pull/8104)
🧪
Tests
- Improve unit tests organization (#7852, by @Falke-Design)
- Run tests on
Internet Explorer 11
(#7741 by @jonkoops) - Run tests on
FirefoxNoTouch
(#7736, #7742 by @johnd0e) - Drop
PhantomJS
from test suite (#7660, #7724 by @jonkoops) - Simplify
.near
and.nearLatLng
usage (#7820 by @johnd0e) - Enforce forbid-only rule in the continuous integration (#7448 by @johnd0e)
- Increase
captureTimeout
andbrowserSocketTimeout
(#7856 by @Falke-Design) - Added / update tests (#7790, #7147, #7721, #7461, #7126, #7451, #7450, #7447, #7438 by @Falke-Design, @johnd0e, @phloose)
- Added missing Test-Spec-Files to index.html (#7845 by @Falke-Design)
- Cover
DomEvent
with unit tests (by @stephenspol in https://github.com/Leaflet/Leaflet/pull/8088) - Cover
DomUtil
with unit tests (#7547, by @LGNorris)
🔩
Plugins
- Add / update demo URLs for all plugins, fix broken links (#8003, huge work by @valerio-bozzolan).
- Add / update plugins (#7986, #7956, #7942, #7888, #7896, #7885, #7875, #7874, #7833, #7834, #7832, #7812, #7786, #7802, #6534, #6547, #7367, #7392, #7412, #7631, #7437, #7408, #6500, #7957, #7484, #7236, #7053, #7050, #7312, #7623, #7534, #7626, #7553, #7423, #7619, #7065, #7663, #7690, #7180, #7714, #7665, #7179, #6641, #7647, #7635, #7473, #7471, #7363, #7323, #7295, #7292, #7291, #7257, #7276, #7470, #7700, #7617), #8097, #8096, #8049
v1.8.0-beta.3
🐞
Bug fixes
- Fix vector drift when dragging and immediately zooming (by @manubb @johnd0e @mourner in https://github.com/Leaflet/Leaflet/pull/8103)
- Reduce the occurrence of glitches on rapid zoom (by @mourner in https://github.com/Leaflet/Leaflet/pull/8102)
- Fix
autoPanOnFocus
on icons with noiconSize
(by @Falke-Design in https://github.com/Leaflet/Leaflet/pull/8091)
✨
Improvements
- Add a Ukrainian flag to default attribution
🇺🇦 (by @mourner in https://github.com/Leaflet/Leaflet/pull/8109)
🧪
Tests and workflow
- Add GitHub Actions dependency tracking with Dependabot (by @nathannaveen in https://github.com/Leaflet/Leaflet/pull/8104)
- Cover
DomEvent
with unit tests (by @stephenspol in https://github.com/Leaflet/Leaflet/pull/8088)
(Skipped v1.8.0-beta.2
because of a publishing blunder)
v1.8.0-beta.1
Changes since v1.8.0-beta.0
:
🐞
Bug fixes
- Fix
Uncaught TypeError: t is undefined
error with markers in some editing/drawing plugins (#8084, by @Falke-Design) - Fix broken bundle when using Leaflet with Rollup/Webpack (#8050, by @Falke-Design)
- Fix SVG performance regression (#8058, by @mourner)
✨
Improvements
- Increase default font sizes and decrease attribution transparency for improved legibility (#8057, by @mourner)
- Improve unit tests organization (#7852, by @Falke-Design)
📝
Docs
- Add a new Leaflet accessibility tutorial (#8081, by @Malvoz)
- Fix an issue with top padding on non-API pages (#8083, by @wyankush)
v1.8.0-beta.0
A huge release (the first one in 1.5 years), focused on bug fixes, major reliability and accessibility improvements, cleaning up legacy code, and numerous improvements to documentation, development workflow and release process. A culmination of hundreds of contributions, and a preparation for bigger changes to come.
From now on, releases will become much more frequent. Thanks to our amazing community for all your help and patience.
Please help us test the beta version — if no critical regressions are discovered, v1.8.0 final will follow in a few days.
⚠️
Breaking Changes
- Improve reliability of
contextmenu
event simulation on mobile Safari by introducing a newTapHold
handler, replacing legacyTap
(#7026 by @johnd0e) - Reorganize
DivOverlay
/Popup
/Tooltip
APIs (#7540 by @johnd0e)- Move
Popup
related options fromDivOverlay
toPopup
(#7778 by @Falke-Design) - Change
Tooltip
class fromleaflet-clickable
toleaflet-interactive
(#7719 by @Falke-Design) Map.closeTooltip
now requires a layer as argument (#7533 by @johnd0e)
- Move
- Improve error / argument handling for event listeners (#7518 by @johnd0e)
- Improve reliability of touch events simulation on non-touch devices (
DomEvent.Pointer
) (#7059, #7084, #7415 by @johnd0e) - Improve reliability of
dblclick
event simulation on touch devices (DomEvent.DoubleTap
) (#7027 by @johnd0e) - Improve reliability of
disableClickPropagation
(#7439 by @johnd0e) - Improve
Map
hasLayer()
andLayerGroup
hasLayer()
to require a layer as argument (#6999 by @johnd0e) - Fix
Class.include
to not overwriteoptions
(#7756 by @johnd0e) - Fix
Class.extend
to not modify source props object (#6766 by @johnd0e) - Improve
Browser.touch
touch devices detection (#7029 by @johnd0e) - Get rid of legacy Android hacks (#7022 by @johnd0e)
❇️
API changes
- Make
DivOverlay
/Tooltip
interactive
(#7531, #7532 by @johnd0e) - Add
openOn
,close
,toggle
functions toDivOverlay
(#6639 by @johnd0e) - Introduce
DomEvent.off(el)
to remove all listeners (#7125 by @johnd0e) - Allow preventing round-off errors by passing
false
toUtil.formatNum
/toGeoJSON
(#7100 by @johnd0e) - Add
autoPanOnFocus
toMarker
(#8042 by @IvanSanchez) - Add
referrerPolicy
toTileLayer
(#7945 by @natevw) - Add
playsInline
toVideoOverlay
(#7928 by @Falke-Design) - Add
getCenter
toImageOverlay
(#7848 by @Falke-Design) - Fire a
tileabort
event when aTileLayer
load is cancelled (#6786 by @dstndstn) - Add
crossOrigin
toIcon
(#7298 by @syedmuhammadabid)
✨
Improvements
- Improve memory footprint by removing
will-change
CSS property on tile images (#7872 by @janjaap) - Improve reliability of icons path detection heuristics (#7092 by @johnd0e)
- Improve performance of adding tiled sources by avoiding excessive updates in
GridLayer.onAdd
(#7570 by @johnd0e) - Improve handling of edge cases in
panInside
(#7469 by @daverayment) - Minifiy marker icon SVG (#7600 by @rala72)
- Allow template keys with spaces in
TileLayer
URL (#7216 by @lubojr) - Improve behavior of
Tooltip
bound toImageOverlay
(#7306 by @IvanSanchez) - Remove the gap between Popup tip and content dialog (#7920 by @Malvoz)
- Fire
mousemove
through Canvas to map if it has no layers (#7809 by @johnd0e) - Add print styles to prevent printers from removing background-images in controls (#7851 by @Malvoz)
- Move attribution code from
Layer
toControl.Attribution
(#7764 by @johnd0e) - Refactor
vmlCreate()
so that it does not expose closure toTypeError
(#7279 by @darcyparker) - Improve reliability of
Control.Layers
by not relying on Browserandroid
andtouch
properties (#7057 by @johnd0e) - Improve reliability of
Tooltip
by not relying on Browsertouch
checks (#7535 by @johnd0e) - Make
Browser
mutable for easier automated testing (#7335 by @bozdoz) - Replace
div
withspan
inControl.Layers
container to fix an HTML validation error (#7914 by @tmiaa)
🙌
Accessibility
- Auto pan to markers on focus by default for improved keyboard operability (#8042 by @IvanSanchez)
- Add accessibility section to plugins guide (#7277 by @Malvoz)
- Update
Marker
to default torole="button"
&alt="marker"
for an improved screen reader experience (#7895 by @tmiaa) - Set
role="button"
for appropriate semantics on the<a>
layers control (#7850 by @Malvoz) - Generally enable outlines for keyboard users by not stripping
outline
on focus for keyboard events (#7259 by @jafin) - Enable outlines on
leaflet-container
for keyboard users (#7996 by @Malvoz) - Multiple enhancements to popup's close button (#7794 by @Falke-Design)
- Use relative
font-size
units for resizable text (#7800 by @Chandu-4444) - Apply
:hover
styles to:focus
as well (#7274 by @Malvoz) - Hide the decorative attribution separator from screen readers (#7969 by @Malvoz)
- Make the disabled state of zoom controls available to screen readers (#7280 by @akshataj96)
- Hide the +/- characters in zoom controls from screen readers to prevent erroneous announcements (#7795 by @Falke-Design)
🐞
Bug fixes
- Fix
Marker
jumping position while zooming in certain cases (#7967 by @Falke-Design) - Fix opening / closing
Tooltip
while dragging the map (#7862 by @Falke-Design) - Break the reference to the options of the
Class
prototype (#7459 by @Falke-Design) - Improve
Tooltip
optionspermanent
&sticky
to work together (#7563 by @Falke-Design) - Check if map container is still connected with Leaflet in
locate
event listener (#7813 by @Falke-Design) - Fix
Tooltip
bindTooltip
to unbind existent tooltip (#7633 by @Falke-Design) - Correct
if
condition, to add zoom limits for Layer (#7609 by @vcoppe) GridLayer
redraw tiles after changingmaxNativeZoom
(#6443 by @cherniavskii)- Fix
Popup
keepInView
if the map needs to panned over a long distance (#7792 by @Falke-Design) - Tolerate wrong event names in
add/removePointerListener
(#7808 by @johnd0e) - Reset width & padding to prevent cascading CSS from breaking tile rendering (#6843 by @Spudley)
- Fix
mousedown
event calling after draggingCanvas
map (#7781 by @johnd0e) - Decrease
console.warn
pollution (#7748 by @johnd0e) - Fix
contextmenu
event default-preventing when there are >1 target candidates (#7544 by @johnd0e) - Prevent click on
Popup
-tip from firing on map. (#7541 by @johnd0e) - Fix error by calling
Path.setStyle
before adding the layer to the map (#6941 by @NielsHolt) - Reset
BoxZoom
after cancel with ESC (#7597 by @Falke-Design) - Fix
noConflict
(#7855 by @Falke-Design)
📝
Docs
- Upgrade Code of Conduct to Contributor Covenant v2 and improve its visibility (#7984 by @mourner)
- Lint examples (#7827 by @mourner)
- Update usability in Docs (#7982, #7703, #7950, #7906, #7907, #7696, #7816, #7345, #7815, #7948, #7901 by @Falke-Design, @avioli, @Malvoz, @fulldecent, @saerdnaer, @MxDui)
- Typos / Fixes in Docs, Samples, ... (#7263, #7284, #7339, #7349, #7381, #7371, #7485, #7380, #7578, #7758, #7602, #7857, #7860, #7336, #7819 by @timgates42, @IvanSanchez, @ipovos, @elfalem, @BakuCity, @simon04, @user073, @Dev-Steven, @vanillajonathan, @aquelle-cp, @matkoniecz, @Falke-Design)
- Clarify
zoomend
event (#7460 by @xeruf) - Add
false
toprefix
ofControl.Attribution
(#7814 by @Falke-Design) LayerGroup
inherit fromInteractive Layer
(#7763 by @johnd0e)- Improve
Map.panInside
documentation (#7397 by @daverayment) - Update
Renderer
documentation to clarifytolerance
option is forCanvas
only (#7515 by @Hippl-Eric) - Add documentation for Event-Listener
propagate
argument (#7103 by @riffaud)
🔧
Workflow
- Split
plugins.md
into many files for easier maintenance (#7805 by @Falke-Design) - Add Bundlemon to watch bundle size (#7934, #7983, #7905 by @jonkoops)
- Add
npm run serve
to serve docs on localhost (#7973 by @Falke-Design) - Rename
master
branch tomain
(#7921 by @jonkoops) - Upload files to AWS even if the file-size is the same (#7853 by @jonkoops)
- Remove
leaflet-include.js
fromdebug
samples (#7776 by @Falke-Design) - Lint adjustments (#7676, #7743, #7757 by @jonkoops, @mourner)
- Simplify release process (#7711, #7854, #7727, #8039 by @mourner)
- Simplify docs update process on release (#7730 by @mourner)
- Update dependencies and add Dependabot config (#7455, #7653, #7677, #7725 by @jonkoops)
- Split main workflow into multiple parallel jobs (#7710 by @jonkoops)
- Run CI on Github actions (#7691, #7654, #7702 by @jonkoops)
- Continue running tests even if one fails (#7723 by @jonkoops)
- Add https://github.com/Leaflet/Leaflet/labels/blocker check to release process (#8019 by @Malvoz)
- Remove all references of Bower (#7831 by @jonkoops)
🧪
Tests
- simplify
.near
and.nearLatLng
usage (#7820 by @johnd0e) - Run tests on
Internet Explorer 11
(#7741 by @jonkoops) - Run tests on
FirefoxNoTouch
(#7736, #7742 by @johnd0e) - Drop
PhantomJS
from test suite (#7660, #7724 by @jonkoops) - Enforce forbid-only rule in the continuous integration (#7448 by @johnd0e)
- Increase
captureTimeout
andbrowserSocketTimeout
(#7856 by @Falke-Design) - Added / update tests (#7790, #7147, #7721, #7461, #7126, #7451, #7450, #7447, #7438 by @Falke-Design, @johnd0e, @phloose)
- Added missing Test-Spec-Files to index.html (#7845 by @Falke-Design)
🔩
Plugins
- Add / update demo URLs for all plugins, fix broken links (#8003, huge work by @valerio-bozzolan).
- Add / update plugins (#7986, #7956, #7942, #7888, #7896, #7885, #7875, #7874, #7833, #7834, #7832, #7812, #7786, #7802, #6534, #6547, #7367, #7392, #7412, #7631, #7437, #7408, #6500, #7957, #7484, #7236, #7053, #7050, #7312, #7623, #7534, #7626, #7553, #7423, #7619, #7065, #7663, #7690, #7180, #7714, #7665, #7179, #6641, #7647, #7635, #7473, #7471, #7363, #7323, #7295, #7292, #7291, #7257, #7276, #7470, #7700, #7617)
v1.7.1
1.7.1 (2020-09-04)
Bug fixes
- Fix build toolchain to reflect uglifyjs upgrade from v2 to v3 (by @ivansanchez)
1.7.0 (2020-09-03)
API changes
VideoOverlay
now can take amuted
option (#7071 by @ronikar)- The
featureGroup
factory method now takesoptions
, as theFeatureGroup
constructor (#7160 by @frogcat)
Improvements
- Use passive event listeners for
touchstart
/touchend
events (#7008 by @yneet) - Better detection of
PointerEvents
-capable browsers inL.Browser
, and related changes toTap
,Drag
, andTouchZoom
handlers (#7010, (#7033, (#7036, (#7068, (#7195 by @johnd0e) - Add more browser profiles for the automated tests (#7115 by @johnd0e)
Bug fixes
- Fix canvas renderer not clearing the canvas on some zoom transformations, was affecting opacity of items (#6915 by @chipta)
- Fix detection of passive events in
L.Browser
(#6930 by @Ivan-Perez) - Prefix MS-specific CSS style to prevent warnings (by @ivansanchez, kudos to @zachricha for #6960)
- Clean up
moveend
listener frommap.setMaxBounds
(#6958 by @simon04) - Fix wrong scope of
bind
call in ESM environments (#6970 by @shintonik) - Check that
closePopup
exists before calling it automatically (#6962 by @pke) - Fix exception when calling
layerGroup.hasLayer()
with wronglayerId
(#6998 by @johnd0e) - Remove
click
filter targeting Android 4.x browsers (#7013 by @johnd0e) - Fix touch zoom handler context (#7036 by @johnd0e)
- Tests for
Bounds.overlaps()
andBounds.intersects()
(#7075 by @mondeja) - Fix event propagation in a popup's container (#7091 by @johnd0e)
- Fix tile flickering when
maxNativeZoom === maxZoom
(#7094 by @johnd0e) - Fix
GridLayer
's zoom-level loading algorithm (#7123 by @johnd0e) - Fix
tooltipAnchor
behavior for different tooltip directions (#7155 by @Istador)
Docs & Web Site
- Updated examples to use non-legacy Mapbox tiles, and related changes (#6905 by @riastrad) (#6922 by @danswick) (#6995 by @riastrad)
- Fix documentation for
Polyline.addLatLng()
(#6924 by @life777) - CRS tutorial: change link for UQM tool to an archived version (by @ivansanchez)
- Fixed minor spelling errors in documentation (#6850 by @flopp) (#6944 by @jieter)
- Fixed typo in panes documentation (by #6939 by @R4M80MrX)
- Fixed broken URL in quick-start example (#6982 by @ekbarber)
- Fix documentation for
map.setMaxBounds()
(#7001 by @johnd0e) - Fix tilt code in handler tutorial (#7014 by @vncntcltt)
- Fix instructions for using
jekyll
when building docs (#7014 by @vncntcltt) - Update WMS servers in WMS tutorial (#7014 by @vncntcltt)
- Website constrast changes and minor cleanup (by @mourner)
- Fixed typo in WMS example (#7098 by @andreasnuesslein)
- Fix documentation for
divOverlay.getElement()
(#7111 by @mondeja) - Fix documentation for
Marker.shadowPane
(#7135 by @mi-v) - Update URL about NPM in developer docs (#7161 by @iamtekson)
- Fix documentation for
Layer.removeFrom()
regardingLayerGroup
s (by @ivansanchez) - Fix documentation for
LatLngBounds.overlaps()
#7194 by @DerZade)