From 5850b46ca47a975fcaed74bfbd494ab1cd7653e1 Mon Sep 17 00:00:00 2001 From: Kevin ETOURNEAU Date: Fri, 23 Feb 2024 17:05:46 +0100 Subject: [PATCH] fix(PlanarLayer): Fix delete new extent from globalExtentTMS const --- src/Core/Prefab/Planar/PlanarLayer.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Core/Prefab/Planar/PlanarLayer.js b/src/Core/Prefab/Planar/PlanarLayer.js index f9b26c09a5..e5af99a76d 100644 --- a/src/Core/Prefab/Planar/PlanarLayer.js +++ b/src/Core/Prefab/Planar/PlanarLayer.js @@ -11,6 +11,7 @@ import PlanarTileBuilder from './PlanarTileBuilder'; * internally for optimisation. */ class PlanarLayer extends TiledGeometryLayer { + #isNewExtent; /** * A {@link TiledGeometryLayer} to use with a {@link PlanarView}. It has * specific method for updating and subdivising its grid. @@ -40,18 +41,28 @@ class PlanarLayer extends TiledGeometryLayer { constructor(id, extent, object3d, config = {}) { const tms = CRS.formatToTms(extent.crs); const tileMatrixSets = [tms]; + let isNewExtent = false; if (!globalExtentTMS.get(extent.crs)) { // Add new global extent for this new crs projection. globalExtentTMS.set(extent.crs, extent); + isNewExtent = true; } config.tileMatrixSets = tileMatrixSets; super(id, object3d || new THREE.Group(), [extent], new PlanarTileBuilder({ crs: extent.crs }), config); this.isPlanarLayer = true; + this.#isNewExtent = isNewExtent; this.extent = extent; this.minSubdivisionLevel = this.minSubdivisionLevel == undefined ? 0 : this.minSubdivisionLevel; this.maxSubdivisionLevel = this.maxSubdivisionLevel == undefined ? 5 : this.maxSubdivisionLevel; this.maxDeltaElevationLevel = this.maxDeltaElevationLevel || 4.0; } + + delete(clearCache) { + super.delete(clearCache); + if (this.#isNewExtent) { + globalExtentTMS.delete(this.extent.crs); + } + } } export default PlanarLayer;