leaflet: modify to handle canvas-based path redrawing better. the correct fix is only in the 0.8-dev at this time, but that's not stable enough to use
NOTE: only leaflet-src.js updated, and NOT the minified leaflet.js
This commit is contained in:
parent
c0d0d87946
commit
480381d5e9
36
external/leaflet-src.js
vendored
36
external/leaflet-src.js
vendored
@ -5072,10 +5072,35 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path :
|
|||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onAdd: function (map) {
|
||||||
|
this._map = map;
|
||||||
|
|
||||||
|
if (!this._container) {
|
||||||
|
this._initElements();
|
||||||
|
this._initEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.projectLatlngs();
|
||||||
|
this._updatePath();
|
||||||
|
|
||||||
|
if (this._container) {
|
||||||
|
this._map._pathRoot.appendChild(this._container);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.fire('add');
|
||||||
|
|
||||||
|
map.on({
|
||||||
|
'viewreset': this.projectLatlngs,
|
||||||
|
'moveend': this._updatePath,
|
||||||
|
'canvasredraw': this._updatePath
|
||||||
|
}, this);
|
||||||
|
},
|
||||||
|
|
||||||
onRemove: function (map) {
|
onRemove: function (map) {
|
||||||
map
|
map
|
||||||
.off('viewreset', this.projectLatlngs, this)
|
.off('viewreset', this.projectLatlngs, this)
|
||||||
.off('moveend', this._updatePath, this);
|
.off('moveend', this._updatePath, this)
|
||||||
|
.off('canvasredraw', this._updatePath, this);
|
||||||
|
|
||||||
if (this.options.clickable) {
|
if (this.options.clickable) {
|
||||||
this._map.off('click', this._onClick, this);
|
this._map.off('click', this._onClick, this);
|
||||||
@ -5089,13 +5114,13 @@ L.Path = (L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? L.Path :
|
|||||||
|
|
||||||
_requestUpdate: function () {
|
_requestUpdate: function () {
|
||||||
if (this._map && !L.Path._updateRequest) {
|
if (this._map && !L.Path._updateRequest) {
|
||||||
L.Path._updateRequest = L.Util.requestAnimFrame(this._fireMapMoveEnd, this._map);
|
L.Path._updateRequest = L.Util.requestAnimFrame(this._fireCanvasRedraw, this._map);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_fireMapMoveEnd: function () {
|
_fireCanvasRedraw: function () {
|
||||||
L.Path._updateRequest = null;
|
L.Path._updateRequest = null;
|
||||||
this.fire('moveend');
|
this.fire('canvasredraw');
|
||||||
},
|
},
|
||||||
|
|
||||||
_initElements: function () {
|
_initElements: function () {
|
||||||
@ -5215,6 +5240,7 @@ L.Map.include((L.Path.SVG && !window.L_PREFER_CANVAS) || !L.Browser.canvas ? {}
|
|||||||
this.on('zoomend', this._endPathZoom);
|
this.on('zoomend', this._endPathZoom);
|
||||||
}
|
}
|
||||||
this.on('moveend', this._updateCanvasViewport);
|
this.on('moveend', this._updateCanvasViewport);
|
||||||
|
this.on('canvasredraw', this._updateCanvasViewport);
|
||||||
this._updateCanvasViewport();
|
this._updateCanvasViewport();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -9166,4 +9192,4 @@ L.Map.include({
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}(window, document));
|
}(window, document));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user