All Versions
Latest Version
Avg Release Cycle
89 days
Latest Release
725 days ago

Changelog History
Page 3

  • v1.0-rc2 Changes

    July 18, 2016

    API changes

    πŸ‘Œ Improvements

    πŸ› Bug fixes

    • πŸ›  Fixed GridLayer's outer edge snapping to vertical center of map (fix #4702) (by @yohanboniface) #4704
    • πŸ›  Fixed scrollwheel zoom too fast in MS Edge (by @IvanSanchez) #4694
    • πŸ‘‰ Use pointer-events: visiblePainted as fallback for IE <11 (by @perliedman) #4690
    • Avoid double borders on abbr in website (by @brunob) #4663
    • Prevent firing map click when layer has popup (by @jwoyame) #4603
    • Disable pointer events on popup tip (by @jwoyame) #4599
    • Prevent L.DomUtil.create() from automatically setting a CSS class name (by @MuellerMatthew) #4563
    • πŸ›  Fix off-by-one bug in Control.Layers._getLayer (by @ValentinH) #4561
    • πŸ›  Fix scrollwheel events zomming two levelz in Chrome by scaling down getWheelDelta() (by @IvanSanchez) #4538
    • 🚚 Prevent event listeners from being called when all listeners are removed (by @perliedman) #4555
    • πŸ’» Don't prevent browser's touch scroll and/or zoom unless handlers are enabled (by @perliedman) #4552
    • πŸ›  Fixed getBoundsZoom with small size and padding (by @dianjin) #4532
    • πŸ›  Fixed L.Control.Layers in IE8 (by @jieter) #4509
    • πŸ›  Fixed TileLayer's retina logic when zoomReverse is enabled. (by @perliedman) #4503
    • πŸ›  Fixed setMaxBounds not resetting maxBounds when passing null argument (by @yohanboniface) #4494
    • πŸ›  Fixed canvas not filtering click event after drag (by @yohanboniface) #4493
    • πŸ›  Fixed L.Control.removeLayer() raising an error when trying to remove a layer not yet added (by @jieter) #4487
    • πŸ›  Fixed disabling drag on click in IE11 (by @perliedman) #4479
    • πŸ›  Fixed L.Evented.listens() on removed event handlers, #4474 (by @IvanSanchez) #4476
    • πŸ‘ Better handling of markerZoomAnimation event hooks (by @IvanSanchez) #4460
  • v1.0-rc1 Changes

    April 18, 2016

    API changes

    πŸ‘Œ Improvements

    πŸ› Bug fixes

    • πŸ›  Fixed an edge case on Map.fitBounds (by @perliedman) #4377
    • πŸ›  Fixed an edge case bug in flyTo (by @hyperknot) #4376
    • πŸ‘‰ Use mean earth radius for distance calculation in L.CRS.Earth. (by @perliedman) #4369
    • πŸ›  Fixed zoom event fired twice (by @perliedman) #4367
    • πŸŽ‰ Initialize canvas dash on init. Check that canvas supports setLineDash. (by @perliedman) #4364
    • Do not calculate inverted y coords for CRSes with infinite: true (by @jieter) #4344
    • πŸ›  Fixed zoom handling on Map.TouchZoom (by @IvanSanchez) #4340
    • πŸ›  Fixed this._times.length undefined in Map.Drag.js (by @LucasMouraDeOliveira) #4324
    • πŸ›  Fixed simulated click handling in L.Path (by @elkami12) #4314
    • πŸ›  Fixed attribution text not removed when Layer is removed from map (by @dr-itz) #4293
    • πŸ›  Fixed bug when adding/removing a layer from L.Control.Layer that is not on the map (by @errebenito) #4280
    • πŸ›  Fixed Map.attributionControl only set on addInitHook (by @snkashis) #4263
    • Check for e.originalEvent in DomUtil._filterclick (by @IvanSanchez) #4256
    • Stop drag propagation on L.Draggable (by @turban) #4250
    • πŸ›  Fixed error when quickly removing a layer just added (by @hyperknot) #4244
    • πŸ›  Fixed not resetting properly on Map.stop (by @IvanSanchez) #4229
    • πŸ›  Fixed conflict between Map.fadeAnimation and GridLayer.opacity (by @IvanSanchez) #4228
    • πŸ›  Fix fractional zoom calculation (by @hyperknot) #4224
    • πŸ‘ Better cleanup of L.Control.Layers, fixes #4213 (plus unit tests) (by @IvanSanchez) #4214
    • πŸ›  Fixed transform issue when not L.Browser.any3d (by @IvanSanchez) #4212
    • πŸ›  Fixed fractional zoom controls broken when initial zoom isn't specified (by @IvanSanchez) #4209
    • πŸ›  Fix extra tiles usage (by @IvanSanchez) #4193
    • βœ… Sanity check: test pxBounds validity before using it (by @yohanboniface) #4191
    • 0️⃣ Disable event defaults when disabling scroll propagation (by @IvanSanchez) #4160
    • πŸ›  Fixed precision issues in L.Circle radius (by @IvanSanchez) #4133
    • β†ͺ Workarounded some touch-capable browsers firing dblclick instead of touch events (by @IvanSanchez) #4131
    • πŸ‘‰ Use all projected coords when calculating L.Polyline's pixel bounds. (by @perliedman) #4114
    • πŸ›  Fixed removing all events when passing an undefined property (by @robertleeplummerjr) #4113
    • πŸ›  Fixed retina URL computation (by @hyperknot) #4110
    • Fire tileunload for all unloading of tiles (by @tcoats) #4099
    • πŸ›  Fixed duplicated code in L.GridLayer.retainParent() (by @jblarsen) #4094
    • πŸ‘‰ Make sure to always reset _enforcingBounds. (by @perliedman) #4089
    • πŸ›  Fix bug with max bounds and custom projections (by @OleLaursen) #4078
    • When limiting center to bounds, ignore offsets less than a pixel. (by @perliedman) #4077
    • πŸ›  Fixed bug for hover event between circle overlapping polygon on canvas (by @fimietta) #4072
    • πŸ›  Fixed but where L.Control.Layers where calling map._size instead of getSize() (by @Brobin) #4063
    • Round new map position before animating pan (by @RLRR) #4046
    • πŸ›  Fixed overlayed circles not responding to mouse events in canvas (by @Deftwun) #4033
    • πŸ›  Fixed GeoJSON resetStyle (by @yohanboniface) #4028
    • πŸ›  Fixed popup toggle on marker click (by @yohanboniface) #4016
    • πŸ›  Fixed event target fallbacking to map after marker drag (fix #3971) (by @yohanboniface) #4010
    • πŸ›  Fixed maxZoom not honoring 0 (by @simsibimsiwimsi) #4000
    • ⚑️ Skip L.GridLayer._updateLevels() when out of min/max zoom (prevents IE8 exceptions) (by @IvanSanchez) #3999
    • L.DomUtil.getPosition() should return a fallback value (for VML in IE8) (by @IvanSanchez) #3998
    • L.Marker: init interaction regardless of new icon or not (by @celadevra) #3978
    • πŸ›  Fix interactive=false not taken into account for canvas (by @yohanboniface) #3956
    • πŸ›  Fix canvas path disappearing on animation (by @klaftertief) #3950
    • Only check for moving draggable in canvas renderer when map is draggable (by @klaftertief) #3942
    • πŸ›  Fix SVG Dragging issues in IE and Edge (by @perliedman) #4382
    • πŸ›  Fix click not working on inputs in controls in IE 11 (by @perliedman) #4371
    • πŸ‘‰ Make drag and touch zoom handlers insensitive to order of event handlers (by @perliedman) #4387


  • v1.0-beta2 Changes

    October 14, 2015

    β†ͺ Beta 2 fixes over 50 bugs that were reported by users trying out beta 1. The vast majority of changes are small fixes to problems that are triggered in very specific situations or conditions, a few API consolidation changes, and a few browser workarounds.

    API changes

    • now accepts radius as an option (like L.circleMarker) rather than a second argument (by @IvanSanchez)

    πŸ‘Œ Improvements

    • Implemented canvas optimizations on mousehover interactions (by @philippelatulippe) #3076
    • πŸ‘Œ Improved drag behaviour by preventing a preclick event during drag (by @yohanboniface) #3632
    • πŸ›  Implemented L.ImageOverlay.setBounds() and fixed image overlay initialization (by @fminuti) #3680
    • Implemented draggable items to fire mousedown events (by @yohanboniface) #3682
    • πŸ”„ Changed detection of browsers capable of msPointer events (by @IvanSanchez) #3684
    • Implemented latitude truncation for spherical mercator projection (by @perliedman) #3700
    • πŸ’» Armored against browsers not implementing Geolocation.clearWatch() #3707
    • πŸ— Implemented generation of sourcemaps when building and minifying source files (by @IvanSanchez) #3723
    • βž• Added bringToFront and bringToBack to popups (by @danzel). #3908 #3307
    • Multiply offset by 3 on keyboard pan when shift key is pressed (by @yohanboniface) #3921

    πŸ› Bug fixes

  • v1.0-beta1 Changes

    July 14, 2015

    πŸš€ The first beta of the huge, long-awaited Leaflet 1.0 release.

    ⬆️ This version contains a lot of beneficial but potentially breaking changes (especially if you're a plugin author), so please read through the changes carefully if your code breaks after upgrading.

    Vectors API improvements

    🐎 Leaflet vector layers rendering got a major rewrite, making it possible to switch between rendering backends (Canvas, SVG) dynamically (and even use both for different layers at the same time), have more than one physical pane for vector layers, significantly improving performance, adding Canvas retina support, getting rid of ugly hacks and generally making the code much cleaner. Main PR #2290.

    • βž• Added Renderer layer (inherited by SVG/Canvas implementations) that handles renderer bounds and zoom animation.
    • βž• Added SVG & Canvas classes that now contain all renderer-specific code for vector layers and can be added as layers to the map.
    • All vector layer classes (Path, Polyline, etc.) now don't contain any renderer-specific code and instead can be passed a renderer layer to use as renderer in options;
    • βœ‚ Removed MultiPolyline and MultiPolygon classes since multiple rings are now handled by Polyline and Polygon classes respectively. Layers with multiple rings now perform much better (since each is now physically a single path object instead of being a FeatureGroup of layers).
    • 🐎 Dramatically improved performance of interactive Canvas layers. Mouse events work much faster (due to improved hit detection algorithms), and layers get updated many times faster (with partial redraws instead of redrawing the whole Canvas).
    • 🐎 Dramatically improved performance of interactive SVG layers (e.g. creating a big GeoJSON layer and adding to a map got 3x faster while taking 2.5x less memory). #2240 #2315
    • βž• Added retina support for Canvas layers.
    • πŸ‘Œ Improved default vector layer styles.
    • βž• Added Polyline and Polygon getCenter for getting centroids.
    • Respectively, improved Polyline and Polygon popup positioning when calling openPopup.
    • πŸ‘Œ Improved Polyline/Polygon getBounds to be cached (so it works much faster).
    • πŸ”„ Changed Circle to inherit from CircleMarker and not the other way.
    • πŸ›  Fixed GeoJSON resetStyle to work properly in case style option wasn't set.
    • πŸ›  Fixed a bug where map fired moveend when updating Canvas layers.
    • βœ‚ Removed Polyline and Polygon spliceLatLngs method (just use setLatLngs instead).
    • πŸ”„ Changed Polygon getLatLngs to always return an array of rings (nested array) (by @yohanboniface). #2618 #3386 Leaflet/Leaflet#3279 #2648
    • βž• Added the ability to specify a custom pane for vector layers (making it possible to easily do stacks like vectors-tiles-vectors with proper z-index order) (by @Jakobud). #3266 #2786
    • βž• Added vector layers fillRule option (by @bullgare). #2834
    • Removed L_PREFER_CANVAS global switch and added Map preferCanvas option instead (by @yohanboniface). #3623

    Layers API improvements

    πŸ”¨ All Leaflet layers (including markers, popups, tile and vector layers) have been refactored to have a common parent, Layer class, that shares the basic logic of adding and removing. The leads to the following changes (main PR #2266):

    • βž• Added Layer class which all layers added to a map should inherit from.
    • βž• Added add and remove events to all layers.
    • βž• Added remove method to layers and controls (marker.remove() is now equivalent to map.removeLayer(marker)).
    • πŸ‘Œ Improved performance of adding and removing layers.
    • βž• Added pane option to all layers that can be changed (e.g. you can set pane: 'overlayPane' to a tile layer).
    • βž• Added map createPane method for custom panes. #1742
    • 🚚 Simplified map panes — removed objectsPane, all panes are on the same level now.
    • βž• Added shadowPane option to markers as well.
    • βž• Added getEvents method to all layers that returns an {event: listener, ...} hash; layers now manage its listeners automatically without having to do this in onAdd/onRemove.
    • βž• Added togglePopup, setPopupContent, getPopup, isPopupOpen methods to all layers. #2279 #2292
    • πŸ‘Œ Improved performance of adding/removing layers with layers control present (instead of listening to any layer add/remove, the control only listens to layers added in configuration).
    • πŸ›  Fixed FeatureGroup getBounds to work correctly when containing circle markers.
    • βœ‚ Removed Map tilelayersload event.
    • βœ‚ Removed Popup open and close events in favor of add and remove for consistency.
    • 🚚 Moved all layer-related logic in Map.js to Layer.js.
    • πŸ‘Œ Improved FeatureGroup bindPopup to accept a function for generating popup content, significantly improving memory footprint when adding popups to a huge number of layers (by @patrickarlt). #3109 #3059
    • βž• Added ImageOverlay interactivity (mouse events, etc.) (by @snkashis). #3009 #1727
    • βž• Added ImageOverlay getBounds (by @brunob). #2848
    • πŸ“‡ Renamed clickable option to interactive (by @AndriiHeonia). #2838 #2499
    • πŸ”„ Changed the default z-index of panes to be bigger, leaving more room for customization (by @patrickarlt). #3591
    • πŸ‘Œ Improved DOM event bubbling mechanism for layers (by @yohanboniface). Leaflet/Leaflet#3307 #3450 #3307
    • βž• Added nonBubblingEvents option to layers (by @yohanboniface). #3605 #3307 #3604

    In addition, layer events implementation was rewritten to use event delegation, significantly improving add/remove performance and memory footprint. #3032 #46

    TileLayer & Projections API improvements

    πŸ”¨ TileLayer code and everything projections-related has undergone a major refactoring, documented in PR #2247. It includes the following changes (in addition to much cleaner and simpler code):

    TileLayer API improvements

    These changes make implementing custom grid-like layers for Leaflet much easier.

    • 🚚 Moved most of the TileLayer logic into the new GridLayer class (which TileLayer now inherits, extending it with logic specific to tile servers).
    • βœ‚ Removed TileLayer.Canvas in favor of the much more flexible and powerful GridLayer.
    • πŸ‘Œ Improved tile wrapping and bounding logic in TileLayer to work transparently and completely depent on the CRS used; removed the need for TileLayer hacks when using custom projections.
    • βž• Added non-square tiles support (by @IvanSanchez). #3573 #3570
    • βœ‚ Removed url property in tileload and tileloadstart events (get it through tile.src).

    Projections API improvements

    🚚 These changes were targeted at removing any hardcoded projection-specific logic accross Leaflet classes, making it transparent and driven by the chosen CRS. They make using Leaflet with custom projections (including flat maps) much easier, and remove the need for ugly hacks in the Proj4Leaflet plugin.

    • βž• Added CRS.Earth which serves as a base for all Earth-based CRS (EPSG3857 etc.). #2345
    • βž• Added Projection bounds property that defines bounds for different projections (Mercator, etc.) in projected coordinates (by @perliedman).
    • βž• Added CRS wrapLat and wrapLng properties which define whether the world wraps on a given axis and in what range. Set as [-180, 180] for EPSG:3857, EPSG:4326, EPSG:3395 by default.
    • βž• Added CRS and Map wrapLatLng (the latter depends on the chosen CRS).
    • βž• Added CRS infinite property that disables boundaries (the world can go on infinitely in any direction), default for CRS.Simple.
    • βž• Added CRS getProjectedBounds and Map getPixelWorldBounds methods that returns world bounds in projected coordinates depending on zoom (derived from Projection bounds) (by @perliedman).
    • βž• Added CRS unproject method that converts coordinates in CRS-dependent units into LatLng coordinates (by @sowelie).
    • βž• Added Map distance(latlng1, latlng2) method that takes CRS into account and works with flat projections. #2345 #1442
    • πŸ‘Œ Improved Circle to be approximated with an ellipse in Earth-based projections. #2345
    • πŸ›  Fixed EPSG:4326 to have correct tile pyramid (2x1 tiles at root).
    • πŸ›  Fixed Projection.SphericalMercator to project to meter units (by @calvinmetcalf).
    • πŸ›  Fixed Map worldCopyJump option to work for other projections.
    • πŸ›  Fixed Circle to work with flat projections. #2345 #1465
    • πŸ›  Fixed scale control precision in non-EPSG:3857 projections. #2345
    • πŸ›  Fixed ImageOverlay not working properly in some non-standard projections. #3011

    Animations improvements and fractional zoom

    Animation code in Leaflet had undergone a major rewrite (main PR: #2382), bringing improvements such as:

    • Multi-level tile buffering for more seamless zooming experience with less flickering
    • Optimal path animation (map.flyTo) for zooming to a particular place in a curve (simultaneously zooming and panning)
    • πŸ‘ Fractional zoom support — now you can do things like map.setZoom(12.45) and it just works.
    • Layers now rely on zoom event in addition to viewreset for frame-by-frame zoom animations. #3278

    UX improvements

    • πŸ‘Œ Improved panning inertia behavior so that there are no tearing during animation when panning around quickly. #2360
    • πŸ‘Œ Improved inertial scrolling to have a nicer, more natural feel (by @RickMohr). Leaflet/Leaflet#3063 #3063 #3062 #2987
    • βž• Added popup fade out animation.
    • πŸ‘Œ Improved keyboard support to ignore keystrokes with modifier keys (Ctrl, Alt, Meta) to not interfere with OS shortcuts.
    • Made popup to close when pressing Escape (by @snkashis). #951 #3000
    • πŸ‘Œ Improved keyboard zoom to zoom by 3 levels if shift key is pressed (by @yohanboniface). #3024
    • πŸ‘Œ Improved layers control to become scrollable when there are too many layers (by @rowanwins). #3571 #3167

    🐎 Misc. performance improvements

    • 🐎 Significantly improved LatLng creation performance (8x).
    • πŸ‘Œ Improved performance of layer objects construction.
    • 🐎 Significantly improved FeatureGroup (and correspondingly GeoJSON) layer adding and events performance (about 10x) by implementing a much better event propagation mechanism. #2311
    • πŸ‘Œ Improved Leaflet events and DOM events memory footprint.
    • πŸ‘Œ Improved Evented off performance by about 2 times.

    Other breaking API changes

    • πŸ”„ Changed DomUtil off to require context attribute if you remove a listener that was previously added with a particular context.
    • βœ‚ Removed DomUtil.getViewportOffset method as it is no longer necessary.
    • βœ‚ Removed DomUtil getTranslateString and getScaleString methods.
    • βœ‚ Removed DomUtil documentIsLtr method.
    • Removed LatLng RAD_TO_DEG, DEG_TO_RAD and MAX_MARGIN constants.
    • πŸ“‡ Renamed Util.limitExecByInterval to Util.throttle.

    Other API improvements

    • βž• Added Evented class that now many Leaflet classes inherit from (instead of mixing in events methods in each class), while keeping the old includes: L.Mixin.Events syntax available. #2310
    • πŸ‘Œ Improved Class options to be prototypically inherited instead of copied over in children classes, which leads to more efficient memory use, faster object construction times and ability to change parent options that get propagated to all children automatically (by @jfirebaugh). #2300 #2294
    • βž• Added {r} variable to TileLayer url for adding "@2x" prefix on Retina-enabled devices (by @urbaniak). #2296
    • βž• Added Point ceil method (by @perliedman).
    • βž• Added Util.wrapNum method for wrapping a number to lie in a certain range.
    • πŸ‘Œ Improved L.bind to use native Function bind on modern browsers and prepend real arguments to bound ones.
    • βž• Added LatLng equals second argument maxMargin.
    • βž• Added DomUtil setClass and getClass methods.
    • πŸ‘Œ Improved Marker move event to include oldLatlng (by @danzel). #2412
    • βž• Added Marker mousemove event (by @bullgare). #2798
    • πŸ‘Œ Improved DomEvent on/off to accept space-separated events and object literals ({type: fn}).
    • βž• Added DomUtil toFront and toBack methods.
    • βž• Added Evented listens as a shortcut to hasEventListeners.
    • βž• Added optional support for center-oriented scroll for option touchZoom (by @mtmail). #2527
    • βž• Added getElement method to all layers that returns an associated DOM element.
    • βž• Added LatLng clone method (by @yohanboniface). #3390
    • βž• Added Map setMinZoom and setMaxZoom methods (by @nathancahill). #3383 #3380
    • βž• Added originalEvent to Map and Marker drag and move event data (by @yohanboniface). #3264
    • βž• Added Popup autoClose option (by @jfirebaugh). #3018 #2716 #1853
    • βž• Added Control.Zoom enable and disable methods. #3172
    • βž• Added an argument to L.PolyUtil.clipPolygon that controls rounding (by @aparshin). #2926 #2917
    • βž• Added Map wheelDebounceTime option (by @AndriiHeonia). #2836 #2501
    • βž• Added TileLayer.WMS uppercase option (now false by default) (by @kdeloach). #2831 #1751
    • βž• Added ImageOverlay alt option (by @francis-liberty). #2767 #2564
    • πŸ‘Œ Improved L.Util.extend performance (by @fab1an). #2746
    • βž• Added Map stop method for stopping panning or flyTo animation.
    • βž• Added Map maxBoundsViscosity option that controls how much the map resits dragging out of max bounds (set to 1 for a hard limit) (by @IvanSanchez). #2224 #3510 #1673
    • βž• Added Bounds and LatLngBounds overlaps method (by @IvanSanchez). #2981 #3508
    • βž• Added ImageOverlay crossOrigin option (by @patrickarlt). #3594 #2621

    πŸ›  Bugfixes

    • πŸ›  Fixed DomUtil on to make it possible to add the same listener to the same element for multiple contexts.
    • πŸ›  Fixed a bug that thowed an error when attempting to reinitialize the map on unload (by @gamb). #2410
    • πŸ›  Fixed excessively blurry non-retina tiles on retina iOS devices.
    • πŸ›  Fixed a bug with popup close button in IE7/8. #2351
    • πŸ›  Fixed ImageOverlay mercator distortion on lower zoom levels.
    • πŸ›  Fixed a bug where layers didn't fire popupopen and popupclose events when manually creating a popup object and passing it to bindPopup. #2354
    • πŸ›  Fixed box-zoom overlay appearing under markers. #1813
    • πŸ›  Fixed Map panInsideBounds to accept array-form bounds (by @RLRR). #3489
    • πŸ›  Fixed marker draggable state to persist when removing and adding back to the map (by @IvanSanchez). #3488
    • πŸ›  Fixed inertia not working when parallel to axis (by @rikvanmechelen). #3432
    • πŸ›  Fixed images and SVG inside popups having max-width property overridden (by @yohanboniface). #3452
    • πŸ›  Fixed cursors when dragging is disabled (by @juliensoret). #3219 #3233
    • πŸ›  Fixed LatLng wrap to not drop altitude (by @IvanSanchez). #3420
    • πŸ›  Fixed Firefox for Android not being detected as mobile (by @IvanSanchez). #3419
    • πŸ›  Fixed an infinite loop when calling setMaxBounds several times in a row (by @IvanSanchez). #3410 #3320
    • πŸ›  Fixed a WTF Map locate bug that could cause some unexpected effects (by @sindre). Leaflet/Leaflet#3404
    • πŸ›  Fixed broken zoom in Project Spartan browsers (by @mitchless). #3379
    • πŸ›  Fixed broken Polygon getCenter when all points in the same pixel (by @yohanboniface). #3372
    • πŸ›  Fixed broken Polyline getCenter when the line is very small (by @yohanboniface). #3371
    • πŸ›  Fixed keyboard zoom out not working on azerty keyboards. #3362
    • πŸ›  Fixed a bug where tabbing to an offscreen marker broke control positioning (by @IvanSanchez). #3340 #3333
    • πŸ›  Fixed Map panBy not always returning this (by @Trufi). #3303
    • πŸ›  Fixed a bug where pushing a zoom control with a keyboard would switch focus to the map (by @Jakobud). #3275 #3159
    • πŸ›  Fixed more race conditions leading to map freeze. #3270 #3268 #2693 #2478
    • πŸ›  Fixed iOS race condition when doing a very small pan. #2519
    • πŸ›  Fixed Polygon toGeoJSON exporting a MultiPolygon in some cases (by @yohanboniface). #2977
    • πŸ›  Fixed TileLayer.WMS passing all options as WMS params. #2972
    • πŸ›  Fixed a race condition that made map.fitBounds(map.getBounds()) zoom out sometimes. #2957
    • πŸ›  Fixed a bug where a draggable marker stopped being draggable after setIcon (by @jeffsmale90). #2578
    • πŸ›  Fixed some IE11 touch performance and stability issues (by @danzel). #3007 #2820
    • πŸ›  Fixed a race condition with TileLayer when maxNativeZoom = 0. #3004
    • πŸ›  Fixed FeatureGroup setStyle not affecting ImageOverlay opacity (by @opie). #3008 #2246
    • πŸ›  Fixed class init hooks not being called for parent classes (by @jfirebaugh). #2545
    • πŸ›  Fixed a bug when adding a control that's already added or removing a control that's not present (by @jfirebaugh). #3020 #2877
    • πŸ›  Fixed buggy inertia on low zoom levels when Map worldCopyJump option is enabled (by @flemenach). #3038 #2624
    • πŸ›  Fixed a bug where getMaxZoom sometimes returned wrong result inside a Control.Layers baselayerchange event (by @CloudNiner). #3048 #2318
    • πŸ›  Fixed a bug where during zooming one map, dragging was disabled on all other maps on the page (by @kdeloach). #3050 #2539
    • πŸ›  Fixed a Map getSize race condition where it could return a wrong result (by @kshepard). #3052 #3031
    • πŸ›  Fixed L.latLng factory to accept altitude as a third argument too (by @lonelyelk). #3070.
    • πŸ›  Fixed L.latLng factory to not throw error on empty array input (by @lonelyelk). #3080 #3079
    • πŸ›  Fixed popups to have a default color (by @snkashis). #3115 #3112 #333
    • πŸ›  Fixed Map locate not to mutate the given options object (by @tmcw). #3173
    • πŸ›  Fixed Canvas polylines not to render if stroke is set to 0 (by @optical). #3203
    • Prevented a Joomla bug that could lead to vector layers disappearing (by @SniperSister). #2886 #2881 Leaflet/Leaflet#2881
    • πŸ›  Fixed IE Metro touch events passing through objects on top of a Leaflet map (by @nikgavalas). #2954
    • πŸ›  Fixed a bug where vector layers wouldn't display on websites with SVG max-width set to 100% (by @SniperSister). #2886 #2881
    • πŸ›  Fixed Marker setIcon to not reset popup anchor offset (by @bullgare). #2872
    • πŸ›  Fixed a case where you provide zoom in Map options and then set center (by @AndriiHeonia). #2849 #1871
    • πŸ›  Fixed a race condition with TileLayer setUrl where loading event didn't fire properly (by @bennlich). #2802 #2675 #2827
    • πŸ›  Fixed a bug where a tile layer was not cleaned up properly after zooming past its max zoom (by @francis-liberty). #2764 #1905
    • πŸ›  Fixed a memory leak with Marker setIcon (by @jfgodoy). #2811
    • πŸ›  Fixed LatLng distanceTo to not return NaN on equal locations. #2705
    • πŸ›  Fixed a bug where TileLayer maxNativeZoom didn't work properly with bounds option set (by @mlegenhausen). #2725 #2704
    • πŸ›  Fixed a bug where tiles touching the edge of the bounds from outside where loaded (by @IvanSanchez). #2981 #3508
    • πŸ›  Fixed a memory leak in map.remove() (by @IvanSanchez). #3514 #2718
    • πŸ›  Fixed a bug where layers control collapsed when hovering over a disabled radio button (by @rowanwins). #3564 #2771 Leaflet#2771
    • πŸ›  Fixed GeoJSON not accepting null geometry (by @pglotov). #3585
    • πŸ›  Fixed occasional popup 1px horizontal offset (by @patrickarlt). #3587 #3526 #3586 #3525
    • πŸ›  Fixed some inconsistencies in mouse events for Canvas vector layers (by @wpf500). #3590 #3568 #3618
    • πŸ›  Fixed scale control for non-earth CRS (by @cmulders). #3614

    Misc improvements

    • πŸ‘Œ Improved the build system (jake build) to report gzipped library size.
    • βž• Added version name and commit number to Leaflet builds. #2276
    • βž• Added Leaflet logo in vector format as src/images/logo.svg.
    • βž• Added reference to Leaflet CSS in package.json (by @bclinkinbeard). #2432
    • πŸ’… Switched from JSHint to ESLint for checking code style and made the checks more strict. #3176
    • βž• Added a plugin guide section on module loaders and publishing plugins (by @patrickarlt). #2955 Leaflet/Leaflet#2955
    • πŸ›  Fixed the build system to work in non-git Leaflet folder (by @cschwarz). #2758
  • v0.7.7 Changes

    October 26, 2015
    • πŸ›  Fixed a regression that could sometimes cause tiles to disappear when pinch-zooming on iOS devices.
    • πŸ›  Fixed a regression related to msPointer detection in IE10 (affecting Leaflet.draw and some other plugins) (by @danzel) #3842 #3839 #3804
    • πŸ›  Fixed a bug where a mouseout could fire after a vector element was removed (by @sambernet). #3849 #3829
    • πŸ›  Fixed touch interactions in Edge browser (by @mitchless & @Neorth). #3853 #3379
    • πŸ›  Fixed a bug where removing a layer group from a feature group would throw an error (by @Lambdac0re). #3869

    πŸ— Note tha we skipped 0.7.6 version for which we accidentally published a broken build to NPM.

  • v0.7.5 Changes

    September 02, 2015
    • πŸ›  Fixed a regression that broke animation in Leaflet.markercluster. #3796
  • v0.7.4 Changes

    September 01, 2015
    • πŸ›  Fixed a bug introduced by a recent Chrome update that caused the map not to react to interactions until all tiles are loaded. #3689
    • πŸ›  Fixed a bug where tile layers were not respecting their minZoom or maxZoom options (by @ivansanchez) #3778
    • πŸ‘Œ Improved detection of touch-capable web browsers, in particular fixing touch interactions in device emulation mode in Chrome and Firefox (by @ivansanchez) #3520 #3710
    • πŸ›  Fixed a bug where tile layers with maxNativeZoom were not checking bounds properly (by @jlaxon) #3415
    • πŸ›  Fixed a bug where popups were not remembering which layer originated them after calling bindPopup(popup) (by @Eschon) #3675
    • πŸ›  Fixed a race condition between markers and zoom animation (by @perliedman) #3152
    • πŸ›  Fixed a bug with Map.fitBounds padding (by @bsstoner). #2489
    • πŸ‘ Allow canvas paths to fire dblclick and contextmenu events (by @ivansanchez) #3482
    • πŸ‘ Allow canvas filled polygons to use the fillRule option (by @w8r) #3477
    • πŸ‘ Allow canvas lines to use lineCap and lineJoin options (by @northerneyes) #3156
    • ⚑️ Updated bower definitions to comply with best practices (by @guptaso2) #2726 #3448
  • v0.7.3 Changes

    May 23, 2014
    • Added proper bower and component support (by @calvinmetcalf). #2561 #1903
    • πŸ›  Fixed a bug where dragging the map outside the window caused an error on FF. #2610
    • πŸ›  Fixed a bug where some taps on Android where not working, often falsely perceived as drags (by @axefrog). #2503
    • πŸ›  Fixed a bug where clicks on Android were skipped when happened too fast. #2303
    • πŸ›  Fixed a bug where calling setView (or similar methods) several times in succession could freeze the map. #2521 #2236 #2485
    • πŸ›  Fixed a bug where Control.Layers wasn't properly removed (by @jack-kerouac). #2569
    • πŸ›  Fixed a bug that caused TileLayer load event not to fire properly. #2510
    • πŸ›  Fixed Canvas-based paths not triggering remove event when removed (by @adimitrov). #2486
    • πŸ›  Fixed a bug where you could end up with fractional zoom after pinch-zooming in some cases (by @danzel. #2400 #1943
  • v0.7.2 Changes

    January 17, 2014
    • ⚑️ Fixed a bug that appeared with Chrome 32 update that made all mouse events shifted on scrolled pages. #2352
    • πŸ›  Fixed a bug that could break tile loading when using non-standard tile sizes. #2288
    • πŸ›  Fixed a bug where maxNativeZoom option didn't work with TMS tile layers (by @perliedman). #2321 #2314
  • v0.7.1 Changes

    December 06, 2013
    • πŸ›  Fixed a bug where pinch-zooming quickly could occasionally leave the map at a fractional zoom thus breaking tile loading (by @danzel). #2269 #2255 #1934
    • πŸ›  Fixed tile flickering issues on some old Android 2/3 devices by disabling buggy hardware accelerated CSS there (by @danzel). #2216 #2198
    • πŸ›  Fixed a regression that sometimes led to an error when you started pinch-zoom as the first action on the map (by @danzel). #2259 #2256
    • 🐎 Reverted L.Util.template optimizations to allow Leaflet to be used in eval-banning environments like browser extensions (performance gain was insignificant anyway) (by @calvinmetcalf). #2217 #2209 #1968
    • πŸ›  Fixed a regression where Map invalidateSize could lead to unexpected results when called before map initialization (by @Zverik). #2250 #2249
    • πŸ›  Fixed a regression where FeatureGroup containing other group overwrote original e.layer value in mouse events (by @gumballhead). #2253 #2252
    • πŸ›  Fixed a regression where CircleMarker setLatLngs didn't return this (by @radicalbiscuit). #2206