diff --git a/src/components/catalog/catalog-tree.vue b/src/components/catalog/catalog-tree.vue index 9d1aea77..77777c8a 100644 --- a/src/components/catalog/catalog-tree.vue +++ b/src/components/catalog/catalog-tree.vue @@ -61,7 +61,7 @@ function toggleParent(node: LayerTreeNodeModel, is3d: boolean) { } function toggleLayer(node: LayerTreeNodeModel, is3d: boolean) { - layers.toggleLayer(+node.id, !node.checked, is3d) + layers.toggleLayer(+node.id, !node.checked, is3d, true) } diff --git a/src/composables/layers/layers.composable.ts b/src/composables/layers/layers.composable.ts index 777f49c8..38476e9e 100644 --- a/src/composables/layers/layers.composable.ts +++ b/src/composables/layers/layers.composable.ts @@ -149,15 +149,21 @@ export default function useLayers() { } } - function toggleLayer(id: LayerId, show = true, is3d: boolean) { + function toggleLayer( + id: LayerId, + show = true, + is3d: boolean, + fromCurrentTheme: boolean + ) { const themeStore = useThemeStore() const mapStore = useMapStore() - // the cast from ThemeNodeModel | undefined to Layer might not be correct. // in the themes fixture only WMS layers correspond to the Layer definition, // whereas WMTS layers have "layer" property const store = is3d ? themeStore.layerTrees_3d : themeStore.theme - const layer = themes.findById(id, store) + const layer = ( + themes.findById(id, fromCurrentTheme ? store : undefined) + ) if (layer) { const linkedLayers = layer.metadata?.linked_layers || []