From 8072fd478ad8c6223f640216a81e2e3c1dae4dd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Schwert?= Date: Mon, 3 Apr 2017 14:16:19 +0200 Subject: [PATCH 1/2] Backport https://github.com/Leaflet/Leaflet/commit/a2595bbfe8109dc9cd24a15d28e0e4e6048e2e5f --- src/layer/vector/Renderer.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/layer/vector/Renderer.js b/src/layer/vector/Renderer.js index efae6031693..2eff03d2e58 100644 --- a/src/layer/vector/Renderer.js +++ b/src/layer/vector/Renderer.js @@ -67,7 +67,16 @@ L.Renderer = L.Layer.extend({ }, _onAnimZoom: function (ev) { - this._updateTransform(ev.center, ev.zoom); + var scale = this._map.getZoomScale(ev.zoom, this._zoom), + position = L.DomUtil.getPosition(this._container), + viewHalf = this._map.getSize().multiplyBy(0.5 + this.options.padding), + currentCenterPoint = this._map.project(this._map.getCenter(), ev.zoom), + destCenterPoint = this._map.project(ev.center, ev.zoom), + centerOffset = destCenterPoint.subtract(currentCenterPoint), + + topLeftOffset = viewHalf.multiplyBy(-scale).add(position).add(viewHalf).subtract(centerOffset); + + L.DomUtil.setTransform(this._container, topLeftOffset, scale); }, _onZoom: function () { @@ -75,12 +84,11 @@ L.Renderer = L.Layer.extend({ }, _updateTransform: function (center, zoom) { - var scale = this._map.getZoomScale(zoom, this._zoom), - offset = this._map._latLngToNewLayerPoint(this._topLeft, zoom, center); + var scale = this._map.getZoomScale(zoom, this._zoom); if (L.Browser.any3d) { - L.DomUtil.setTransform(this._container, offset, scale); + L.DomUtil.setTransform(this._container, this._map._getCenterOffset(this._center), scale); } else { - L.DomUtil.setPosition(this._container, offset); + L.DomUtil.setPosition(this._container, this._map._getCenterOffset(this._center)); } }, From 549a826a1840eeed9def45276514115052f4f382 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Schwert?= Date: Mon, 3 Apr 2017 14:21:22 +0200 Subject: [PATCH 2/2] Remove _topLeft declaration --- src/layer/vector/Renderer.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/layer/vector/Renderer.js b/src/layer/vector/Renderer.js index 2eff03d2e58..183b9edb315 100644 --- a/src/layer/vector/Renderer.js +++ b/src/layer/vector/Renderer.js @@ -115,7 +115,6 @@ L.Renderer = L.Layer.extend({ //min = this._map.containerPointToLayerPoint(size.multiplyBy(-p)).round(); this._bounds = clip; - this._topLeft = this._map.layerPointToLatLng(clip.min); this._center = this._map.getCenter(); this._zoom = this._map.getZoom();