From eb93b376552ae62843f75d488b8cb2aaf4e530c8 Mon Sep 17 00:00:00 2001 From: Stepan Kuzmin Date: Sun, 17 Mar 2019 21:02:36 +0300 Subject: [PATCH] add `VectorTileSource#setData` for dynamic vector tiles rendering #3709 --- src/source/vector_tile_source.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/source/vector_tile_source.js b/src/source/vector_tile_source.js index 76c7a2168f2..7013a055264 100644 --- a/src/source/vector_tile_source.js +++ b/src/source/vector_tile_source.js @@ -94,6 +94,23 @@ class VectorTileSource extends Evented implements Source { this.load(); } + setData(options: VectorSourceSpecification & {collectResourceTiming: boolean}) { + if (this._tileJSONRequest) { + this._tileJSONRequest.cancel(); + } + + extend(this, pick(options, ['url', 'scheme', 'tileSize'])); + this._options = extend({ type: 'vector' }, options); + + this._collectResourceTiming = options.collectResourceTiming; + + if (this.tileSize !== 512) { + throw new Error('vector tile sources must have a tileSize of 512'); + } + + this.load(); + } + onRemove() { if (this._tileJSONRequest) { this._tileJSONRequest.cancel();