Update Leaflet to 1.4.0
This commit is contained in:
parent
e9fbc4d13f
commit
2b46f6d16a
@ -1,9 +1,9 @@
|
||||
/* @preserve
|
||||
* Leaflet 1.3.4+Detached: 0e566b2ad5e696ba9f79a9d48a7e51c8f4892441.0e566b2, a JS library for interactive maps. http://leafletjs.com
|
||||
* Leaflet 1.4.0+Detached: 3337f36d2a2d2b33946779057619b31f674ff5dc.3337f36, a JS library for interactive maps. http://leafletjs.com
|
||||
* (c) 2010-2018 Vladimir Agafonkin, (c) 2010-2011 CloudMade
|
||||
*/
|
||||
|
||||
var version = "1.3.4+HEAD.0e566b2";
|
||||
var version = "1.4.0+HEAD.3337f36";
|
||||
|
||||
/*
|
||||
* @namespace Util
|
||||
@ -2284,7 +2284,7 @@ function empty(el) {
|
||||
// Makes `el` the last child of its parent, so it renders in front of the other children.
|
||||
function toFront(el) {
|
||||
var parent = el.parentNode;
|
||||
if (parent.lastChild !== el) {
|
||||
if (parent && parent.lastChild !== el) {
|
||||
parent.appendChild(el);
|
||||
}
|
||||
}
|
||||
@ -2293,7 +2293,7 @@ function toFront(el) {
|
||||
// Makes `el` the first child of its parent, so it renders behind the other children.
|
||||
function toBack(el) {
|
||||
var parent = el.parentNode;
|
||||
if (parent.firstChild !== el) {
|
||||
if (parent && parent.firstChild !== el) {
|
||||
parent.insertBefore(el, parent.firstChild);
|
||||
}
|
||||
}
|
||||
@ -2346,6 +2346,11 @@ function setClass(el, name) {
|
||||
// @function getClass(el: HTMLElement): String
|
||||
// Returns the element's class.
|
||||
function getClass(el) {
|
||||
// Check if the element is an SVGElementInstance and use the correspondingElement instead
|
||||
// (Required for linked SVG elements in IE11.)
|
||||
if (el.correspondingElement) {
|
||||
el = el.correspondingElement;
|
||||
}
|
||||
return el.className.baseVal === undefined ? el.className : el.className.baseVal;
|
||||
}
|
||||
|
||||
@ -3107,6 +3112,13 @@ var Map = Evented.extend({
|
||||
initialize: function (id, options) { // (HTMLElement or String, Object)
|
||||
options = setOptions(this, options);
|
||||
|
||||
// Make sure to assign internal flags at the beginning,
|
||||
// to avoid inconsistent state in some edge cases.
|
||||
this._handlers = [];
|
||||
this._layers = {};
|
||||
this._zoomBoundLayers = {};
|
||||
this._sizeChanged = true;
|
||||
|
||||
this._initContainer(id);
|
||||
this._initLayout();
|
||||
|
||||
@ -3127,11 +3139,6 @@ var Map = Evented.extend({
|
||||
this.setView(toLatLng(options.center), options.zoom, {reset: true});
|
||||
}
|
||||
|
||||
this._handlers = [];
|
||||
this._layers = {};
|
||||
this._zoomBoundLayers = {};
|
||||
this._sizeChanged = true;
|
||||
|
||||
this.callInitHooks();
|
||||
|
||||
// don't animate on browsers without hardware-accelerated transitions or old Android/Opera
|
||||
@ -3490,6 +3497,51 @@ var Map = Evented.extend({
|
||||
return this;
|
||||
},
|
||||
|
||||
// @method panInside(latlng: LatLng, options?: options): this
|
||||
// Pans the map the minimum amount to make the `latlng` visible. Use
|
||||
// `padding`, `paddingTopLeft` and `paddingTopRight` options to fit
|
||||
// the display to more restricted bounds, like [`fitBounds`](#map-fitbounds).
|
||||
// If `latlng` is already within the (optionally padded) display bounds,
|
||||
// the map will not be panned.
|
||||
panInside: function (latlng, options) {
|
||||
options = options || {};
|
||||
|
||||
var paddingTL = toPoint(options.paddingTopLeft || options.padding || [0, 0]),
|
||||
paddingBR = toPoint(options.paddingBottomRight || options.padding || [0, 0]),
|
||||
center = this.getCenter(),
|
||||
pixelCenter = this.project(center),
|
||||
pixelPoint = this.project(latlng),
|
||||
pixelBounds = this.getPixelBounds(),
|
||||
halfPixelBounds = pixelBounds.getSize().divideBy(2),
|
||||
paddedBounds = toBounds([pixelBounds.min.add(paddingTL), pixelBounds.max.subtract(paddingBR)]);
|
||||
|
||||
if (!paddedBounds.contains(pixelPoint)) {
|
||||
this._enforcingBounds = true;
|
||||
var diff = pixelCenter.subtract(pixelPoint),
|
||||
newCenter = toPoint(pixelPoint.x + diff.x, pixelPoint.y + diff.y);
|
||||
|
||||
if (pixelPoint.x < paddedBounds.min.x || pixelPoint.x > paddedBounds.max.x) {
|
||||
newCenter.x = pixelCenter.x - diff.x;
|
||||
if (diff.x > 0) {
|
||||
newCenter.x += halfPixelBounds.x - paddingTL.x;
|
||||
} else {
|
||||
newCenter.x -= halfPixelBounds.x - paddingBR.x;
|
||||
}
|
||||
}
|
||||
if (pixelPoint.y < paddedBounds.min.y || pixelPoint.y > paddedBounds.max.y) {
|
||||
newCenter.y = pixelCenter.y - diff.y;
|
||||
if (diff.y > 0) {
|
||||
newCenter.y += halfPixelBounds.y - paddingTL.y;
|
||||
} else {
|
||||
newCenter.y -= halfPixelBounds.y - paddingBR.y;
|
||||
}
|
||||
}
|
||||
this.panTo(this.unproject(newCenter), options);
|
||||
this._enforcingBounds = false;
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
// @method invalidateSize(options: Zoom/pan options): this
|
||||
// Checks if the map container size changed and updates the map if so —
|
||||
// call it after you've changed the map size dynamically, also animating
|
||||
@ -4608,7 +4660,7 @@ var Map = Evented.extend({
|
||||
}
|
||||
|
||||
// @event zoomanim: ZoomAnimEvent
|
||||
// Fired on every frame of a zoom animation
|
||||
// Fired at least once per zoom animation. For continous zoom, like pinch zooming, fired once per frame during zoom.
|
||||
this.fire('zoomanim', {
|
||||
center: center,
|
||||
zoom: zoom,
|
||||
@ -4964,13 +5016,13 @@ var Layers = Control.extend({
|
||||
// Expand the control container if collapsed.
|
||||
expand: function () {
|
||||
addClass(this._container, 'leaflet-control-layers-expanded');
|
||||
this._form.style.height = null;
|
||||
this._section.style.height = null;
|
||||
var acceptableHeight = this._map.getSize().y - (this._container.offsetTop + 50);
|
||||
if (acceptableHeight < this._form.clientHeight) {
|
||||
addClass(this._form, 'leaflet-control-layers-scrollbar');
|
||||
this._form.style.height = acceptableHeight + 'px';
|
||||
if (acceptableHeight < this._section.clientHeight) {
|
||||
addClass(this._section, 'leaflet-control-layers-scrollbar');
|
||||
this._section.style.height = acceptableHeight + 'px';
|
||||
} else {
|
||||
removeClass(this._form, 'leaflet-control-layers-scrollbar');
|
||||
removeClass(this._section, 'leaflet-control-layers-scrollbar');
|
||||
}
|
||||
this._checkDisabledLayers();
|
||||
return this;
|
||||
@ -4994,7 +5046,7 @@ var Layers = Control.extend({
|
||||
disableClickPropagation(container);
|
||||
disableScrollPropagation(container);
|
||||
|
||||
var form = this._form = create$1('form', className + '-list');
|
||||
var section = this._section = create$1('section', className + '-list');
|
||||
|
||||
if (collapsed) {
|
||||
this._map.on('click', this.collapse, this);
|
||||
@ -5022,11 +5074,11 @@ var Layers = Control.extend({
|
||||
this.expand();
|
||||
}
|
||||
|
||||
this._baseLayersList = create$1('div', className + '-base', form);
|
||||
this._separator = create$1('div', className + '-separator', form);
|
||||
this._overlaysList = create$1('div', className + '-overlays', form);
|
||||
this._baseLayersList = create$1('div', className + '-base', section);
|
||||
this._separator = create$1('div', className + '-separator', section);
|
||||
this._overlaysList = create$1('div', className + '-overlays', section);
|
||||
|
||||
container.appendChild(form);
|
||||
container.appendChild(section);
|
||||
},
|
||||
|
||||
_getLayer: function (id) {
|
||||
@ -6451,7 +6503,7 @@ var Layer = Evented.extend({
|
||||
pane: 'overlayPane',
|
||||
|
||||
// @option attribution: String = null
|
||||
// String to be shown in the attribution control, describes the layer data, e.g. "© Mapbox".
|
||||
// String to be shown in the attribution control, e.g. "© OpenStreetMap contributors". It describes the layer data and is often a legal obligation towards copyright holders and tile providers.
|
||||
attribution: null,
|
||||
|
||||
bubblingMouseEvents: true
|
||||
@ -9686,7 +9738,8 @@ var Popup = DivOverlay.extend({
|
||||
},
|
||||
|
||||
_adjustPan: function () {
|
||||
if (!this.options.autoPan || (this._map._panAnim && this._map._panAnim._inProgress)) { return; }
|
||||
if (!this.options.autoPan) { return; }
|
||||
if (this._map._panAnim) { this._map._panAnim.stop(); }
|
||||
|
||||
var map = this._map,
|
||||
marginBottom = parseInt(getStyle(this._container, 'marginBottom'), 10) || 0,
|
||||
@ -11377,12 +11430,12 @@ function gridLayer(options) {
|
||||
* @class TileLayer
|
||||
* @inherits GridLayer
|
||||
* @aka L.TileLayer
|
||||
* Used to load and display tile layers on the map. Extends `GridLayer`.
|
||||
* Used to load and display tile layers on the map. Note that most tile servers require attribution, which you can set under `Layer`. Extends `GridLayer`.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}', {foo: 'bar'}).addTo(map);
|
||||
* L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}', {foo: 'bar', attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'}).addTo(map);
|
||||
* ```
|
||||
*
|
||||
* @section URL template
|
||||
@ -11482,7 +11535,13 @@ var TileLayer = GridLayer.extend({
|
||||
|
||||
// @method setUrl(url: String, noRedraw?: Boolean): this
|
||||
// Updates the layer's URL template and redraws it (unless `noRedraw` is set to `true`).
|
||||
// If the URL does not change, the layer will not be redrawn unless
|
||||
// the noRedraw parameter is set to false.
|
||||
setUrl: function (url, noRedraw) {
|
||||
if (this._url === url && noRedraw === undefined) {
|
||||
noRedraw = true;
|
||||
}
|
||||
|
||||
this._url = url;
|
||||
|
||||
if (!noRedraw) {
|
||||
@ -11989,8 +12048,6 @@ var Canvas = Renderer.extend({
|
||||
_update: function () {
|
||||
if (this._map._animatingZoom && this._bounds) { return; }
|
||||
|
||||
this._drawnLayers = {};
|
||||
|
||||
Renderer.prototype._update.call(this);
|
||||
|
||||
var b = this._bounds,
|
||||
@ -12060,8 +12117,6 @@ var Canvas = Renderer.extend({
|
||||
this._drawFirst = next;
|
||||
}
|
||||
|
||||
delete this._drawnLayers[layer._leaflet_id];
|
||||
|
||||
delete layer._order;
|
||||
|
||||
delete this._layers[stamp(layer)];
|
||||
@ -12089,9 +12144,13 @@ var Canvas = Renderer.extend({
|
||||
if (typeof layer.options.dashArray === 'string') {
|
||||
var parts = layer.options.dashArray.split(/[, ]+/),
|
||||
dashArray = [],
|
||||
dashValue,
|
||||
i;
|
||||
for (i = 0; i < parts.length; i++) {
|
||||
dashArray.push(Number(parts[i]));
|
||||
dashValue = Number(parts[i]);
|
||||
// Ignore dash array containing invalid lengths
|
||||
if (isNaN(dashValue)) { return; }
|
||||
dashArray.push(dashValue);
|
||||
}
|
||||
layer.options._dashArray = dashArray;
|
||||
} else {
|
||||
@ -12173,8 +12232,6 @@ var Canvas = Renderer.extend({
|
||||
|
||||
if (!len) { return; }
|
||||
|
||||
this._drawnLayers[layer._leaflet_id] = layer;
|
||||
|
||||
ctx.beginPath();
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
@ -12201,8 +12258,6 @@ var Canvas = Renderer.extend({
|
||||
r = Math.max(Math.round(layer._radius), 1),
|
||||
s = (Math.max(Math.round(layer._radiusY), 1) || r) / r;
|
||||
|
||||
this._drawnLayers[layer._leaflet_id] = layer;
|
||||
|
||||
if (s !== 1) {
|
||||
ctx.save();
|
||||
ctx.scale(1, s);
|
||||
@ -12307,6 +12362,9 @@ var Canvas = Renderer.extend({
|
||||
|
||||
_bringToFront: function (layer) {
|
||||
var order = layer._order;
|
||||
|
||||
if (!order) { return; }
|
||||
|
||||
var next = order.next;
|
||||
var prev = order.prev;
|
||||
|
||||
@ -12335,6 +12393,9 @@ var Canvas = Renderer.extend({
|
||||
|
||||
_bringToBack: function (layer) {
|
||||
var order = layer._order;
|
||||
|
||||
if (!order) { return; }
|
||||
|
||||
var next = order.next;
|
||||
var prev = order.prev;
|
||||
|
||||
@ -12390,7 +12451,6 @@ var vmlCreate = (function () {
|
||||
/*
|
||||
* @class SVG
|
||||
*
|
||||
* Although SVG is not available on IE7 and IE8, these browsers support [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language), and the SVG renderer will fall back to VML in this case.
|
||||
*
|
||||
* VML was deprecated in 2012, which means VML functionality exists only for backwards compatibility
|
||||
* with old versions of Internet Explorer.
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,5 +1,5 @@
|
||||
/* @preserve
|
||||
* Leaflet 1.3.4+Detached: 0e566b2ad5e696ba9f79a9d48a7e51c8f4892441.0e566b2, a JS library for interactive maps. http://leafletjs.com
|
||||
* Leaflet 1.4.0+Detached: 3337f36d2a2d2b33946779057619b31f674ff5dc.3337f36, a JS library for interactive maps. http://leafletjs.com
|
||||
* (c) 2010-2018 Vladimir Agafonkin, (c) 2010-2011 CloudMade
|
||||
*/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
(factory((global.L = {})));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
var version = "1.3.4+HEAD.0e566b2";
|
||||
var version = "1.4.0+HEAD.3337f36";
|
||||
|
||||
/*
|
||||
* @namespace Util
|
||||
@ -2290,7 +2290,7 @@ function empty(el) {
|
||||
// Makes `el` the last child of its parent, so it renders in front of the other children.
|
||||
function toFront(el) {
|
||||
var parent = el.parentNode;
|
||||
if (parent.lastChild !== el) {
|
||||
if (parent && parent.lastChild !== el) {
|
||||
parent.appendChild(el);
|
||||
}
|
||||
}
|
||||
@ -2299,7 +2299,7 @@ function toFront(el) {
|
||||
// Makes `el` the first child of its parent, so it renders behind the other children.
|
||||
function toBack(el) {
|
||||
var parent = el.parentNode;
|
||||
if (parent.firstChild !== el) {
|
||||
if (parent && parent.firstChild !== el) {
|
||||
parent.insertBefore(el, parent.firstChild);
|
||||
}
|
||||
}
|
||||
@ -2352,6 +2352,11 @@ function setClass(el, name) {
|
||||
// @function getClass(el: HTMLElement): String
|
||||
// Returns the element's class.
|
||||
function getClass(el) {
|
||||
// Check if the element is an SVGElementInstance and use the correspondingElement instead
|
||||
// (Required for linked SVG elements in IE11.)
|
||||
if (el.correspondingElement) {
|
||||
el = el.correspondingElement;
|
||||
}
|
||||
return el.className.baseVal === undefined ? el.className : el.className.baseVal;
|
||||
}
|
||||
|
||||
@ -3113,6 +3118,13 @@ var Map = Evented.extend({
|
||||
initialize: function (id, options) { // (HTMLElement or String, Object)
|
||||
options = setOptions(this, options);
|
||||
|
||||
// Make sure to assign internal flags at the beginning,
|
||||
// to avoid inconsistent state in some edge cases.
|
||||
this._handlers = [];
|
||||
this._layers = {};
|
||||
this._zoomBoundLayers = {};
|
||||
this._sizeChanged = true;
|
||||
|
||||
this._initContainer(id);
|
||||
this._initLayout();
|
||||
|
||||
@ -3133,11 +3145,6 @@ var Map = Evented.extend({
|
||||
this.setView(toLatLng(options.center), options.zoom, {reset: true});
|
||||
}
|
||||
|
||||
this._handlers = [];
|
||||
this._layers = {};
|
||||
this._zoomBoundLayers = {};
|
||||
this._sizeChanged = true;
|
||||
|
||||
this.callInitHooks();
|
||||
|
||||
// don't animate on browsers without hardware-accelerated transitions or old Android/Opera
|
||||
@ -3496,6 +3503,51 @@ var Map = Evented.extend({
|
||||
return this;
|
||||
},
|
||||
|
||||
// @method panInside(latlng: LatLng, options?: options): this
|
||||
// Pans the map the minimum amount to make the `latlng` visible. Use
|
||||
// `padding`, `paddingTopLeft` and `paddingTopRight` options to fit
|
||||
// the display to more restricted bounds, like [`fitBounds`](#map-fitbounds).
|
||||
// If `latlng` is already within the (optionally padded) display bounds,
|
||||
// the map will not be panned.
|
||||
panInside: function (latlng, options) {
|
||||
options = options || {};
|
||||
|
||||
var paddingTL = toPoint(options.paddingTopLeft || options.padding || [0, 0]),
|
||||
paddingBR = toPoint(options.paddingBottomRight || options.padding || [0, 0]),
|
||||
center = this.getCenter(),
|
||||
pixelCenter = this.project(center),
|
||||
pixelPoint = this.project(latlng),
|
||||
pixelBounds = this.getPixelBounds(),
|
||||
halfPixelBounds = pixelBounds.getSize().divideBy(2),
|
||||
paddedBounds = toBounds([pixelBounds.min.add(paddingTL), pixelBounds.max.subtract(paddingBR)]);
|
||||
|
||||
if (!paddedBounds.contains(pixelPoint)) {
|
||||
this._enforcingBounds = true;
|
||||
var diff = pixelCenter.subtract(pixelPoint),
|
||||
newCenter = toPoint(pixelPoint.x + diff.x, pixelPoint.y + diff.y);
|
||||
|
||||
if (pixelPoint.x < paddedBounds.min.x || pixelPoint.x > paddedBounds.max.x) {
|
||||
newCenter.x = pixelCenter.x - diff.x;
|
||||
if (diff.x > 0) {
|
||||
newCenter.x += halfPixelBounds.x - paddingTL.x;
|
||||
} else {
|
||||
newCenter.x -= halfPixelBounds.x - paddingBR.x;
|
||||
}
|
||||
}
|
||||
if (pixelPoint.y < paddedBounds.min.y || pixelPoint.y > paddedBounds.max.y) {
|
||||
newCenter.y = pixelCenter.y - diff.y;
|
||||
if (diff.y > 0) {
|
||||
newCenter.y += halfPixelBounds.y - paddingTL.y;
|
||||
} else {
|
||||
newCenter.y -= halfPixelBounds.y - paddingBR.y;
|
||||
}
|
||||
}
|
||||
this.panTo(this.unproject(newCenter), options);
|
||||
this._enforcingBounds = false;
|
||||
}
|
||||
return this;
|
||||
},
|
||||
|
||||
// @method invalidateSize(options: Zoom/pan options): this
|
||||
// Checks if the map container size changed and updates the map if so —
|
||||
// call it after you've changed the map size dynamically, also animating
|
||||
@ -4614,7 +4666,7 @@ var Map = Evented.extend({
|
||||
}
|
||||
|
||||
// @event zoomanim: ZoomAnimEvent
|
||||
// Fired on every frame of a zoom animation
|
||||
// Fired at least once per zoom animation. For continous zoom, like pinch zooming, fired once per frame during zoom.
|
||||
this.fire('zoomanim', {
|
||||
center: center,
|
||||
zoom: zoom,
|
||||
@ -4970,13 +5022,13 @@ var Layers = Control.extend({
|
||||
// Expand the control container if collapsed.
|
||||
expand: function () {
|
||||
addClass(this._container, 'leaflet-control-layers-expanded');
|
||||
this._form.style.height = null;
|
||||
this._section.style.height = null;
|
||||
var acceptableHeight = this._map.getSize().y - (this._container.offsetTop + 50);
|
||||
if (acceptableHeight < this._form.clientHeight) {
|
||||
addClass(this._form, 'leaflet-control-layers-scrollbar');
|
||||
this._form.style.height = acceptableHeight + 'px';
|
||||
if (acceptableHeight < this._section.clientHeight) {
|
||||
addClass(this._section, 'leaflet-control-layers-scrollbar');
|
||||
this._section.style.height = acceptableHeight + 'px';
|
||||
} else {
|
||||
removeClass(this._form, 'leaflet-control-layers-scrollbar');
|
||||
removeClass(this._section, 'leaflet-control-layers-scrollbar');
|
||||
}
|
||||
this._checkDisabledLayers();
|
||||
return this;
|
||||
@ -5000,7 +5052,7 @@ var Layers = Control.extend({
|
||||
disableClickPropagation(container);
|
||||
disableScrollPropagation(container);
|
||||
|
||||
var form = this._form = create$1('form', className + '-list');
|
||||
var section = this._section = create$1('section', className + '-list');
|
||||
|
||||
if (collapsed) {
|
||||
this._map.on('click', this.collapse, this);
|
||||
@ -5028,11 +5080,11 @@ var Layers = Control.extend({
|
||||
this.expand();
|
||||
}
|
||||
|
||||
this._baseLayersList = create$1('div', className + '-base', form);
|
||||
this._separator = create$1('div', className + '-separator', form);
|
||||
this._overlaysList = create$1('div', className + '-overlays', form);
|
||||
this._baseLayersList = create$1('div', className + '-base', section);
|
||||
this._separator = create$1('div', className + '-separator', section);
|
||||
this._overlaysList = create$1('div', className + '-overlays', section);
|
||||
|
||||
container.appendChild(form);
|
||||
container.appendChild(section);
|
||||
},
|
||||
|
||||
_getLayer: function (id) {
|
||||
@ -6457,7 +6509,7 @@ var Layer = Evented.extend({
|
||||
pane: 'overlayPane',
|
||||
|
||||
// @option attribution: String = null
|
||||
// String to be shown in the attribution control, describes the layer data, e.g. "© Mapbox".
|
||||
// String to be shown in the attribution control, e.g. "© OpenStreetMap contributors". It describes the layer data and is often a legal obligation towards copyright holders and tile providers.
|
||||
attribution: null,
|
||||
|
||||
bubblingMouseEvents: true
|
||||
@ -9692,7 +9744,8 @@ var Popup = DivOverlay.extend({
|
||||
},
|
||||
|
||||
_adjustPan: function () {
|
||||
if (!this.options.autoPan || (this._map._panAnim && this._map._panAnim._inProgress)) { return; }
|
||||
if (!this.options.autoPan) { return; }
|
||||
if (this._map._panAnim) { this._map._panAnim.stop(); }
|
||||
|
||||
var map = this._map,
|
||||
marginBottom = parseInt(getStyle(this._container, 'marginBottom'), 10) || 0,
|
||||
@ -11383,12 +11436,12 @@ function gridLayer(options) {
|
||||
* @class TileLayer
|
||||
* @inherits GridLayer
|
||||
* @aka L.TileLayer
|
||||
* Used to load and display tile layers on the map. Extends `GridLayer`.
|
||||
* Used to load and display tile layers on the map. Note that most tile servers require attribution, which you can set under `Layer`. Extends `GridLayer`.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}', {foo: 'bar'}).addTo(map);
|
||||
* L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}', {foo: 'bar', attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'}).addTo(map);
|
||||
* ```
|
||||
*
|
||||
* @section URL template
|
||||
@ -11488,7 +11541,13 @@ var TileLayer = GridLayer.extend({
|
||||
|
||||
// @method setUrl(url: String, noRedraw?: Boolean): this
|
||||
// Updates the layer's URL template and redraws it (unless `noRedraw` is set to `true`).
|
||||
// If the URL does not change, the layer will not be redrawn unless
|
||||
// the noRedraw parameter is set to false.
|
||||
setUrl: function (url, noRedraw) {
|
||||
if (this._url === url && noRedraw === undefined) {
|
||||
noRedraw = true;
|
||||
}
|
||||
|
||||
this._url = url;
|
||||
|
||||
if (!noRedraw) {
|
||||
@ -11995,8 +12054,6 @@ var Canvas = Renderer.extend({
|
||||
_update: function () {
|
||||
if (this._map._animatingZoom && this._bounds) { return; }
|
||||
|
||||
this._drawnLayers = {};
|
||||
|
||||
Renderer.prototype._update.call(this);
|
||||
|
||||
var b = this._bounds,
|
||||
@ -12066,8 +12123,6 @@ var Canvas = Renderer.extend({
|
||||
this._drawFirst = next;
|
||||
}
|
||||
|
||||
delete this._drawnLayers[layer._leaflet_id];
|
||||
|
||||
delete layer._order;
|
||||
|
||||
delete this._layers[stamp(layer)];
|
||||
@ -12095,9 +12150,13 @@ var Canvas = Renderer.extend({
|
||||
if (typeof layer.options.dashArray === 'string') {
|
||||
var parts = layer.options.dashArray.split(/[, ]+/),
|
||||
dashArray = [],
|
||||
dashValue,
|
||||
i;
|
||||
for (i = 0; i < parts.length; i++) {
|
||||
dashArray.push(Number(parts[i]));
|
||||
dashValue = Number(parts[i]);
|
||||
// Ignore dash array containing invalid lengths
|
||||
if (isNaN(dashValue)) { return; }
|
||||
dashArray.push(dashValue);
|
||||
}
|
||||
layer.options._dashArray = dashArray;
|
||||
} else {
|
||||
@ -12179,8 +12238,6 @@ var Canvas = Renderer.extend({
|
||||
|
||||
if (!len) { return; }
|
||||
|
||||
this._drawnLayers[layer._leaflet_id] = layer;
|
||||
|
||||
ctx.beginPath();
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
@ -12207,8 +12264,6 @@ var Canvas = Renderer.extend({
|
||||
r = Math.max(Math.round(layer._radius), 1),
|
||||
s = (Math.max(Math.round(layer._radiusY), 1) || r) / r;
|
||||
|
||||
this._drawnLayers[layer._leaflet_id] = layer;
|
||||
|
||||
if (s !== 1) {
|
||||
ctx.save();
|
||||
ctx.scale(1, s);
|
||||
@ -12313,6 +12368,9 @@ var Canvas = Renderer.extend({
|
||||
|
||||
_bringToFront: function (layer) {
|
||||
var order = layer._order;
|
||||
|
||||
if (!order) { return; }
|
||||
|
||||
var next = order.next;
|
||||
var prev = order.prev;
|
||||
|
||||
@ -12341,6 +12399,9 @@ var Canvas = Renderer.extend({
|
||||
|
||||
_bringToBack: function (layer) {
|
||||
var order = layer._order;
|
||||
|
||||
if (!order) { return; }
|
||||
|
||||
var next = order.next;
|
||||
var prev = order.prev;
|
||||
|
||||
@ -12396,7 +12457,6 @@ var vmlCreate = (function () {
|
||||
/*
|
||||
* @class SVG
|
||||
*
|
||||
* Although SVG is not available on IE7 and IE8, these browsers support [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language), and the SVG renderer will fall back to VML in this case.
|
||||
*
|
||||
* VML was deprecated in 2012, which means VML functionality exists only for backwards compatibility
|
||||
* with old versions of Internet Explorer.
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user