From 0bad2f9c3fa2f9362dafb173f57d2cc917fe7120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-=C3=89tienne=20Lord?= Date: Tue, 29 Mar 2022 11:39:14 -0400 Subject: [PATCH 1/2] feat(layerSync): prevent refresh of linked layer if applied OGC filter are the same --- packages/geo/src/lib/layer/utils/layerSync-watcher.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/geo/src/lib/layer/utils/layerSync-watcher.ts b/packages/geo/src/lib/layer/utils/layerSync-watcher.ts index 6d00c389a2..002a6e0d60 100644 --- a/packages/geo/src/lib/layer/utils/layerSync-watcher.ts +++ b/packages/geo/src/lib/layer/utils/layerSync-watcher.ts @@ -172,7 +172,9 @@ export class LayerSyncWatcher extends Watcher { const layerType = layerToApply.ol.getProperties().sourceOptions.type; (layerToApply.dataSource as OgcFilterableDataSource).setOgcFilters(ogcFilters, false); if (layerType === 'wfs') { - layerToApply.ol.getSource().refresh(); + if (ogcFilters !== (layerToApply.dataSource as OgcFilterableDataSource).ogcFilters$.value) { + layerToApply.ol.getSource().refresh(); + } } if (layerType === 'wms') { let appliedOgcFilter; @@ -200,8 +202,10 @@ export class LayerSyncWatcher extends Watcher { l.bidirectionnal !== false && l.linkedIds.indexOf(currentLinkedId) !== -1) { const layerType = layer.ol.getProperties().sourceOptions.type; if (layerType === 'wfs') { - (layer.dataSource as OgcFilterableDataSource).setOgcFilters(ogcFilters, true); - layer.ol.getSource().refresh(); + if (ogcFilters !== (layer.dataSource as OgcFilterableDataSource).ogcFilters$.value) { + (layer.dataSource as OgcFilterableDataSource).setOgcFilters(ogcFilters, true); + layer.ol.getSource().refresh(); + } } if (layerType === 'wms') { let appliedOgcFilter; From 9e5e1d373b1bfb5593a92310a087854fe22d2545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-=C3=89tienne=20Lord?= Date: Tue, 29 Mar 2022 11:43:27 -0400 Subject: [PATCH 2/2] wip --- packages/geo/src/lib/layer/utils/layerSync-watcher.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/geo/src/lib/layer/utils/layerSync-watcher.ts b/packages/geo/src/lib/layer/utils/layerSync-watcher.ts index 002a6e0d60..f07e02fa08 100644 --- a/packages/geo/src/lib/layer/utils/layerSync-watcher.ts +++ b/packages/geo/src/lib/layer/utils/layerSync-watcher.ts @@ -205,7 +205,7 @@ export class LayerSyncWatcher extends Watcher { if (ogcFilters !== (layer.dataSource as OgcFilterableDataSource).ogcFilters$.value) { (layer.dataSource as OgcFilterableDataSource).setOgcFilters(ogcFilters, true); layer.ol.getSource().refresh(); - } + } } if (layerType === 'wms') { let appliedOgcFilter;