Re-render vector tiles when layer has changed

This commit is contained in:
Andreas Hocevar
2016-12-14 14:26:03 +01:00
parent b1f25d484b
commit 85f7a7c843
3 changed files with 63 additions and 4 deletions

View File

@@ -30,6 +30,12 @@ ol.renderer.canvas.VectorTileLayer = function(layer) {
*/
this.dirty_ = false;
/**
* @private
* @type {number}
*/
this.renderedLayerRevision_;
/**
* @private
* @type {ol.Transform}
@@ -64,6 +70,19 @@ ol.renderer.canvas.VectorTileLayer.VECTOR_REPLAYS = {
};
/**
* @inheritDoc
*/
ol.renderer.canvas.VectorTileLayer.prototype.prepareFrame = function(frameState, layerState) {
var layerRevision = this.getLayer().getRevision();
if (this.renderedLayerRevision_ != layerRevision) {
this.renderedTiles.length = 0;
}
this.renderedLayerRevision_ = layerRevision;
return ol.renderer.canvas.TileLayer.prototype.prepareFrame.apply(this, arguments);
};
/**
* @param {ol.VectorTile} tile Tile.
* @param {olx.FrameState} frameState Frame state.