Merge pull request #1168 from McBen/leaflet_077

Upgrade Leaflet to 0.7.7
This commit is contained in:
Dave Ingram 2017-01-08 15:38:26 -08:00 committed by GitHub
commit 7d170aef5b
2 changed files with 45 additions and 56 deletions

View File

@ -7,7 +7,7 @@
var oldL = window.L, var oldL = window.L,
L = {}; L = {};
L.version = '0.7.3'; L.version = '0.7.7';
// define Leaflet for Node module pattern loaders, including Browserify // define Leaflet for Node module pattern loaders, including Browserify
if (typeof module === 'object' && typeof module.exports === 'object') { if (typeof module === 'object' && typeof module.exports === 'object') {
@ -519,9 +519,8 @@ L.Mixin.Events.fire = L.Mixin.Events.fireEvent;
gecko = ua.indexOf('gecko') !== -1, gecko = ua.indexOf('gecko') !== -1,
mobile = typeof orientation !== undefined + '', mobile = typeof orientation !== undefined + '',
msPointer = window.navigator && window.navigator.msPointerEnabled && msPointer = !window.PointerEvent && window.MSPointerEvent,
window.navigator.msMaxTouchPoints && !window.PointerEvent, pointer = (window.PointerEvent && window.navigator.pointerEnabled) ||
pointer = (window.PointerEvent && window.navigator.pointerEnabled && window.navigator.maxTouchPoints) ||
msPointer, msPointer,
retina = ('devicePixelRatio' in window && window.devicePixelRatio > 1) || retina = ('devicePixelRatio' in window && window.devicePixelRatio > 1) ||
('matchMedia' in window && window.matchMedia('(min-resolution:144dpi)') && ('matchMedia' in window && window.matchMedia('(min-resolution:144dpi)') &&
@ -534,38 +533,8 @@ L.Mixin.Events.fire = L.Mixin.Events.fireEvent;
opera3d = 'OTransition' in doc.style, opera3d = 'OTransition' in doc.style,
any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d || opera3d) && !phantomjs; any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d || opera3d) && !phantomjs;
var touch = !window.L_NO_TOUCH && !phantomjs && (pointer || 'ontouchstart' in window ||
// PhantomJS has 'ontouchstart' in document.documentElement, but doesn't actually support touch. (window.DocumentTouch && document instanceof window.DocumentTouch));
// https://github.com/Leaflet/Leaflet/pull/1434#issuecomment-13843151
var touch = !window.L_NO_TOUCH && !phantomjs && (function () {
var startName = 'ontouchstart';
// IE10+ (We simulate these into touch* events in L.DomEvent and L.DomEvent.Pointer) or WebKit, etc.
if (pointer || (startName in doc)) {
return true;
}
// Firefox/Gecko
var div = document.createElement('div'),
supported = false;
if (!div.setAttribute) {
return false;
}
div.setAttribute(startName, 'return;');
if (typeof div[startName] === 'function') {
supported = true;
}
div.removeAttribute(startName);
div = null;
return supported;
}());
L.Browser = { L.Browser = {
ie: ie, ie: ie,
@ -1632,15 +1601,16 @@ L.Map = L.Class.extend({
var paddingTL = L.point(options.paddingTopLeft || options.padding || [0, 0]), var paddingTL = L.point(options.paddingTopLeft || options.padding || [0, 0]),
paddingBR = L.point(options.paddingBottomRight || options.padding || [0, 0]), paddingBR = L.point(options.paddingBottomRight || options.padding || [0, 0]),
zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR)), zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR));
paddingOffset = paddingBR.subtract(paddingTL).divideBy(2),
zoom = (options.maxZoom) ? Math.min(options.maxZoom, zoom) : zoom;
var paddingOffset = paddingBR.subtract(paddingTL).divideBy(2),
swPoint = this.project(bounds.getSouthWest(), zoom), swPoint = this.project(bounds.getSouthWest(), zoom),
nePoint = this.project(bounds.getNorthEast(), zoom), nePoint = this.project(bounds.getNorthEast(), zoom),
center = this.unproject(swPoint.add(nePoint).divideBy(2).add(paddingOffset), zoom); center = this.unproject(swPoint.add(nePoint).divideBy(2).add(paddingOffset), zoom);
zoom = options && options.maxZoom ? Math.min(options.maxZoom, zoom) : zoom;
return this.setView(center, zoom, options); return this.setView(center, zoom, options);
}, },
@ -2782,7 +2752,7 @@ L.TileLayer = L.Class.extend({
} }
if (options.bounds) { if (options.bounds) {
var tileSize = options.tileSize, var tileSize = this._getTileSize(),
nwPoint = tilePoint.multiplyBy(tileSize), nwPoint = tilePoint.multiplyBy(tileSize),
sePoint = nwPoint.add([tileSize, tileSize]), sePoint = nwPoint.add([tileSize, tileSize]),
nw = this._map.unproject(nwPoint), nw = this._map.unproject(nwPoint),
@ -3567,10 +3537,8 @@ L.Marker = L.Class.extend({
update: function () { update: function () {
if (this._icon) { if (this._icon) {
var pos = this._map.latLngToLayerPoint(this._latlng).round(); this._setPos(this._map.latLngToLayerPoint(this._latlng).round());
this._setPos(pos);
} }
return this; return this;
}, },
@ -4228,6 +4196,7 @@ L.Marker.include({
if (content instanceof L.Popup) { if (content instanceof L.Popup) {
L.setOptions(content, options); L.setOptions(content, options);
this._popup = content; this._popup = content;
content._source = this;
} else { } else {
this._popup = new L.Popup(options, this) this._popup = new L.Popup(options, this)
.setContent(content); .setContent(content);
@ -4420,7 +4389,9 @@ L.FeatureGroup = L.LayerGroup.extend({
layer = this._layers[layer]; layer = this._layers[layer];
} }
layer.off(L.FeatureGroup.EVENTS, this._propagateEvent, this); if ('off' in layer) {
layer.off(L.FeatureGroup.EVENTS, this._propagateEvent, this);
}
L.LayerGroup.prototype.removeLayer.call(this, layer); L.LayerGroup.prototype.removeLayer.call(this, layer);
@ -4740,7 +4711,7 @@ L.Path = L.Path.extend({
}, },
_fireMouseEvent: function (e) { _fireMouseEvent: function (e) {
if (!this.hasEventListeners(e.type)) { return; } if (!this._map || !this.hasEventListeners(e.type)) { return; }
var map = this._map, var map = this._map,
containerPoint = map.mouseEventToContainerPoint(e), containerPoint = map.mouseEventToContainerPoint(e),
@ -5145,6 +5116,13 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path :
if (options.fill) { if (options.fill) {
this._ctx.fillStyle = options.fillColor || options.color; this._ctx.fillStyle = options.fillColor || options.color;
} }
if (options.lineCap) {
this._ctx.lineCap = options.lineCap;
}
if (options.lineJoin) {
this._ctx.lineJoin = options.lineJoin;
}
}, },
_drawPath: function () { _drawPath: function () {
@ -5195,7 +5173,7 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path :
if (options.fill) { if (options.fill) {
ctx.globalAlpha = options.fillOpacity; ctx.globalAlpha = options.fillOpacity;
ctx.fill(); ctx.fill(options.fillRule || 'evenodd');
} }
if (options.stroke) { if (options.stroke) {
@ -5210,7 +5188,6 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path :
_initEvents: function () { _initEvents: function () {
if (this.options.clickable) { if (this.options.clickable) {
// TODO dblclick
this._map.on('mousemove', this._onMouseMove, this); this._map.on('mousemove', this._onMouseMove, this);
this._map.on('click', this._onClick, this); this._map.on('click', this._onClick, this);
} }
@ -5218,7 +5195,7 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path :
_onClick: function (e) { _onClick: function (e) {
if (this._containsPoint(e.layerPoint)) { if (this._containsPoint(e.layerPoint)) {
this.fire('click', e); this.fire(e.type, e);
} }
}, },
@ -7243,8 +7220,9 @@ L.extend(L.DomEvent, {
pointers = this._pointers; pointers = this._pointers;
var cb = function (e) { var cb = function (e) {
if (e.pointerType !== 'mouse' && e.pointerType !== e.MSPOINTER_TYPE_MOUSE) {
L.DomEvent.preventDefault(e); L.DomEvent.preventDefault(e);
}
var alreadyInArray = false; var alreadyInArray = false;
for (var i = 0; i < pointers.length; i++) { for (var i = 0; i < pointers.length; i++) {
@ -9003,20 +8981,25 @@ L.Map.include(!L.DomUtil.TRANSITION ? {} : {
delta: delta, delta: delta,
backwards: backwards backwards: backwards
}); });
// horrible hack to work around a Chrome bug https://github.com/Leaflet/Leaflet/issues/3689
setTimeout(L.bind(this._onZoomTransitionEnd, this), 250);
}, this); }, this);
}, },
_onZoomTransitionEnd: function () { _onZoomTransitionEnd: function () {
if (!this._animatingZoom) { return; }
this._animatingZoom = false; this._animatingZoom = false;
L.DomUtil.removeClass(this._mapPane, 'leaflet-zoom-anim'); L.DomUtil.removeClass(this._mapPane, 'leaflet-zoom-anim');
this._resetView(this._animateToCenter, this._animateToZoom, true, true); L.Util.requestAnimFrame(function () {
this._resetView(this._animateToCenter, this._animateToZoom, true, true);
if (L.Draggable) { if (L.Draggable) {
L.Draggable._disabled = false; L.Draggable._disabled = false;
} }
}, this);
} }
}); });
@ -9052,6 +9035,11 @@ L.TileLayer.include({
// force reflow // force reflow
L.Util.falseFn(bg.offsetWidth); L.Util.falseFn(bg.offsetWidth);
var zoom = this._map.getZoom();
if (zoom > this.options.maxZoom || zoom < this.options.minZoom) {
this._clearBgBuffer();
}
this._animating = false; this._animating = false;
}, },

View File

@ -21,6 +21,7 @@
.leaflet-container { .leaflet-container {
overflow: hidden; overflow: hidden;
-ms-touch-action: none; -ms-touch-action: none;
touch-action: none;
} }
.leaflet-tile, .leaflet-tile,
.leaflet-marker-icon, .leaflet-marker-icon,