Merge pull request #7871 from fredj/optim

Memory optimization
This commit is contained in:
Frédéric Junod
2018-02-21 16:35:27 +01:00
committed by GitHub
3 changed files with 19 additions and 18 deletions

View File

@@ -1208,15 +1208,18 @@ PluggableMap.prototype.renderFrame_ = function(time) {
layerStates[getUid(layerStatesArray[i].layer)] = layerStatesArray[i];
}
viewState = view.getState();
const center = viewState.center;
const pixelResolution = viewState.resolution / this.pixelRatio_;
center[0] = Math.round(center[0] / pixelResolution) * pixelResolution;
center[1] = Math.round(center[1] / pixelResolution) * pixelResolution;
let focus = this.focus_;
if (!focus) {
focus = viewState.center;
const pixelResolution = viewState.resolution / this.pixelRatio_;
focus[0] = Math.round(focus[0] / pixelResolution) * pixelResolution;
focus[1] = Math.round(focus[1] / pixelResolution) * pixelResolution;
}
frameState = /** @type {olx.FrameState} */ ({
animate: false,
coordinateToPixelTransform: this.coordinateToPixelTransform_,
extent: extent,
focus: !this.focus_ ? center : this.focus_,
focus: focus,
index: this.frameIndex_++,
layerStates: layerStates,
layerStatesArray: layerStatesArray,

View File

@@ -77,11 +77,10 @@ function handleDragEvent(mapBrowserEvent) {
const deltaY = centroid[1] - this.lastCentroid[1];
const map = mapBrowserEvent.map;
const view = map.getView();
const viewState = view.getState();
let center = [deltaX, deltaY];
scaleCoordinate(center, viewState.resolution);
rotateCoordinate(center, viewState.rotation);
addCoordinate(center, viewState.center);
scaleCoordinate(center, view.getResolution());
rotateCoordinate(center, view.getRotation());
addCoordinate(center, view.getCenter());
center = view.constrainCenter(center);
view.setCenter(center);
}

View File

@@ -73,15 +73,15 @@ const RenderFeature = function(type, flatCoordinates, ends, properties, id) {
*/
this.properties_ = properties;
/**
* @private
* @type {ol.Transform}
*/
this.tmpTransform_ = createTransform();
};
/**
* @type {ol.Transform}
*/
const tmpTransform = createTransform();
/**
* Get a feature property by its key.
* @param {string} key Key
@@ -267,12 +267,11 @@ RenderFeature.prototype.transform = function(source, destination) {
const pixelExtent = source.getExtent();
const projectedExtent = source.getWorldExtent();
const scale = getHeight(projectedExtent) / getHeight(pixelExtent);
const transform = this.tmpTransform_;
composeTransform(transform,
composeTransform(tmpTransform,
projectedExtent[0], projectedExtent[3],
scale, -scale, 0,
0, 0);
transform2D(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2,
transform, this.flatCoordinates_);
tmpTransform, this.flatCoordinates_);
};
export default RenderFeature;