Don't create temporary arrays in mapbox-layer example

This commit is contained in:
Frederic Junod
2019-05-10 10:59:15 +02:00
parent e5e2129a88
commit 5756003c88
+7 -8
View File
@@ -73,7 +73,7 @@ class Mapbox extends Layer {
if (this.zoomNextRender) { if (this.zoomNextRender) {
this.zoomLastRender = this.zoomNextRender; this.zoomLastRender = this.zoomNextRender;
} }
this.updateRenderedPosition([0, 0], 1); this.updateRenderedPosition(0, 0, 1);
}.bind(this)); }.bind(this));
} }
@@ -89,10 +89,9 @@ class Mapbox extends Layer {
this.centerNextRender = view.getCenter(); this.centerNextRender = view.getCenter();
const lastRender = map.getPixelFromCoordinate(this.centerLastRender); const lastRender = map.getPixelFromCoordinate(this.centerLastRender);
const nextRender = map.getPixelFromCoordinate(this.centerNextRender); const nextRender = map.getPixelFromCoordinate(this.centerNextRender);
const centerOffset = [lastRender[0] - nextRender[0], lastRender[1] - nextRender[1]];
this.zoomNextRender = view.getZoom(); this.zoomNextRender = view.getZoom();
const zoomOffset = Math.pow(2, this.zoomNextRender - this.zoomLastRender); const scale = Math.pow(2, this.zoomNextRender - this.zoomLastRender);
this.updateRenderedPosition(centerOffset, zoomOffset); this.updateRenderedPosition(lastRender[0] - nextRender[0], lastRender[1] - nextRender[1], scale);
const rotation = frameState.viewState.rotation; const rotation = frameState.viewState.rotation;
if (rotation) { if (rotation) {
@@ -111,11 +110,11 @@ class Mapbox extends Layer {
return this.mbmap.getCanvas(); return this.mbmap.getCanvas();
} }
updateRenderedPosition(centerOffset, zoomOffset) { updateRenderedPosition(left, top, scale) {
const style = this.mbmap.getCanvas().style; const style = this.mbmap.getCanvas().style;
style.left = Math.round(centerOffset[0]) + 'px'; style.left = Math.round(left) + 'px';
style.top = Math.round(centerOffset[1]) + 'px'; style.top = Math.round(top) + 'px';
style.transform = 'scale(' + zoomOffset + ')'; style.transform = 'scale(' + scale + ')';
} }
setVisible(visible) { setVisible(visible) {