Don't create temporary arrays in mapbox-layer example
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user