Config Switcher
Dieses Addon ermöglicht das Hinzufügen einer Stichtagsauswahl(Bodenrichtwerte) über einer Drop-Down Auswahlliste. Das Addon wurde für den neuen BORIS-Viewer entwickelt. Die Auswahl wird über verschiedene Konfigurationsdateien gesteuert. Die Lage der Konfigurationsdateinen wird in der config.json definiert. Über die Konfigurationsdateien kann der Kartenebenenbaum manipuliert werden.
Die config.json beinhaltet alle für die Konfigurationen verwendeten Layer. Die Layer können dabei in der Grundkonfiguration auf nicht sichtbar gestellt werden. In den einzelnen Konfigurationen können diese das dann später bei Auswahl des Referenzdatums, auswählbar bzw. sichtbar gemacht werden. Bei Auswahl eines Referenzdatum bzw. Stichtages werden alle ausgewählten Layer zurückgesetzt. Es werden alleinig alle in der ausgewählten Konfiguration definerten Auswahl an Layern angezeigt. Zusätzlich angewählte Layer werden zurückgesetzt bei Auswahl eines Stichtages. Gezeichnete Objekte und importierte Layer bzw. Dienste werden ausgeblendet, können aber im Kartenebenenbaum wieder eingeblendet werden.
Lage der Konfigurationsdateien (config.js)
Nach der Auswahl eines Stichtages werden die Kartenebenen, der Hintergrundwechsler, der Layerswitcher und die Suche entsprechend angepasst.
Setup addonsConf.js
Fügen Sie das Addon der Masterportal Applikation im addons Ordner hinzu.
Erstellen oder editieren Sie die addonsConf.js und fügen Sie folgenden Eintrag hinzu:
{
"configSwitcher": "view.js"
}
Fügen Sie das Addon zur config.js Datei im Abschnitt addons hinzu:
addons: [
"configSwitcher"
]
Setup config.json
Einbindung ins Hauptmenü per parentSelector:.
{
"Portalconfig": {
...
"configSwitcher": {
"parentSelector": "#main-nav"
},
...
Konfiguration und Funktionalität des configSwitchers für den Kartenbaum anhand eines Beispiels
Beispiel: Konfigurationsauswahl
Auswahl 01.01.2024
Ansicht des Konfigurations-Switchers für den Stichtag 01.01.2024
Ausgeklappte Ordner und aktivierte Layer für 01.01.2024
Auswahl 01.01.2023
Ansicht des Konfigurations-Switchers für den Stichtag 01.01.2023
Ausgeklappte Ordner und aktivierte Layer für 01.01.2023
Beispiel zeigt eine Konfigurationsauswahl zweier Bodenrichtwerte.
Konfiguration der config.js für das Beispiel
Die Datei config.js dient dazu, festzulegen, welche Konfigurationsversionen im Auswahlmenü erscheinen und wo die zugehörigen Dateien liegen.
-
classicTreeCfgDefault
Gibt die Standardkonfiguration an und muss exakt mit einemtitleinclassicTreeCfgübereinstimmen. -
classicTreeCfg
Enthält alle verfügbaren Konfigurationen als Schlüssel‑Wert‑Paare:- Schlüssel (z. B.
cfg2024): Eindeutiger Bezeichner title: Datumskennzeichnung (z. B."01.01.2024"), wie sie im Menü angezeigt wirdfile: Pfad zur JSON‑Datei mit den Konfigurationseinstellungen
- Schlüssel (z. B.
// Standard-Auswahl (muss mit einem title in classicTreeCfg übereinstimmen)
const classicTreeCfgDefault = "01.01.2024";
const classicTreeCfg = {
cfg2024: {
title: "01.01.2024",
file: "configurations/BRW-2024.json"
},
cfg2023: {
title: "01.01.2023",
file: "configurations/BRW-2023.json"
},
cfg2022: {
title: "01.01.2022",
file: "configurations/BRW-2022.json"
},
// … weitere Konfigurationen
};
Konfiguration der config.json für das Beispiel
Die Datei config.json definiert alle möglichen Stichtage und deren Layer‑Definitionen. Standardmäßig sind einzelne Einträge ausgeblendet und erscheinen erst nach Auswahl des jeweiligen Stichtags.
1. Portal‑Konfiguration
Hier wird festgelegt, wo der Konfigurations‑Switcher im DOM eingebunden wird:
"Portalconfig": {
…
"configSwitcher": {
"parentSelector": "#main-nav"
},
…
}
2. Themen‑Konfiguration (classicTree)
Im Abschnitt Themenconfig.classicTree legst du fest, welche Stichtage im Tree‑Menü auftauchen und wie die Layer angezeigt werden:
-
name
Beschriftung des Ordners (z. B."Bodenrichtwerte: 01.01.2024") -
type
Immer"folder" -
isVisibleInTree
Steuerung der sichtbaren Einträge im Menü (true= sichtbar,false= ausgeblendet) -
isNeverVisibleInTree(optional)
Wenntrue, bleibt der Eintrag dauerhaft unsichtbar -
isExpanded
Ob der Ordner standardmäßig aufgeklappt ist -
children
Array von Layer‑Definitionen mit:id: Eindeutige Layer‑IDname: Layer‑Namevisibilitybzw.isVisibleInTree: Sichtbarkeit des einzelnen Layers
"Themenconfig": {
"classicTree": [
{
"name": "Bodenrichtwerte: 01.01.2024",
"type": "folder",
"isVisibleInTree": true,
"isExpanded": false,
"children": [
{ "id": "2073", "name": "Bauland", "visibility": true },
{ "id": "2075", "name": "land- und forstwirtschaftliche Flächen", "visibility": true }
]
},
{
"name": "Bodenrichtwerte: 01.01.2023",
"type": "folder",
"isVisibleInTree": false,
"isNeverVisibleInTree": false,
"children": [
{ "id": "2070", "name": "Bauland", "isVisibleInTree": false },
{ "id": "2072", "name": "land- und forstwirtschaftliche Flächen", "isVisibleInTree": false }
]
},
{
"name": "Bodenrichtwerte: 01.01.2022",
"type": "folder",
"isVisibleInTree": false,
"children": [
{ "id": "2063", "name": "Bauland", "isVisibleInTree": false },
{ "id": "2065", "name": "land- und forstwirtschaftliche Flächen", "isVisibleInTree": false }
]
}
// … weitere Einträge
]
}
3. Ablauf beim Konfigurationswechsel
-
Initial
- Nur der Ordner 01.01.2024 ist sichtbar (
isVisibleInTree: true).
- Nur der Ordner 01.01.2024 ist sichtbar (
-
Auswahl „01.01.2024“
- BRW-2024.json überschreibt die Default‑Werte:
- Ordner 01.01.2023 & 01.01.2022 → sichtbar
- Ordner 01.01.2024 →
isExpanded: true - Alle Layer im Ordner 01.01.2024 → aktiviert
- BRW-2024.json überschreibt die Default‑Werte:
-
Wechsel auf „01.01.2023“
- BRW-2023.json setzt:
- Ordner 01.01.2023 & 01.01.2024 → sichtbar
- Alle Layer im Ordner 01.01.2023 → aktiviert
- Ordner 01.01.2022 → aus Menü entfernt
- BRW-2023.json setzt:
-
Zurück zu „01.01.2024“
- BRW-2024.json stellt wieder her:
- Ordner 01.01.2022 → sichtbar
- BRW-2024.json stellt wieder her:
Tipp: Jede
BRW-YYYY.json‑Datei überschreibt nur die Default‑Definitionen inconfig.jsonund sorgt so für eine dynamische Steuerung von Sichtbarkeit, Expansion und aktiven Layern.
Beispiel: BRW‑2024.json
Die Datei BRW‑2024.json überschreibt die Default‑Werte aus config.json für den Stichtag 01.01.2024. Hier werden Sichtbarkeit, Expand‑Status und “Always‑Expanded”-Verhalten der einzelnen Ordner und Layer festgelegt:
{
"Themenconfig": {
"classicTree": [
{
"name": "01.01.2024",
"type": "folder",
"isAlwaysExpanded": true,
"isExpanded": true,
"children": [
{
"id": "2073",
"name": "Bodenrichtwerte: Bauland",
"visibility": true
},
{
"id": "2075",
"name": "Bodenrichtwerte: land- und forstwirtschaftliche Flächen",
"visibility": true
}
]
},
{
"name": "Bodenrichtwerte 01.01.2023",
"type": "folder",
"isAlwaysExpanded": false,
"isExpanded": false,
"children": [
{
"id": "2070",
"name": "Bauland",
"visibility": false
},
{
"id": "2072",
"name": "land- und forstwirtschaftliche Flächen",
"visibility": false
}
]
},
{
"name": "Bodenrichtwerte: 01.01.2022",
"type": "folder",
"isAlwaysExpanded": false,
"isExpanded": false,
"children": [
{
"id": "2063",
"name": "Bodenrichtwerte: Bauland",
"visibility": false
},
{
"id": "2065",
"name": "Bodenrichtwerte: land- und forstwirtschaftliche Flächen",
"visibility": false
}
]
}
// … weitere Stichtage
]
}
}
Beispiel: BRW‑2023.json
Die Datei BRW‑2023.json überschreibt die Default‑Werte aus config.json für den Stichtag 01.01.2023. Hier wird erreicht, dass beim Wechsel auf 2023 der Ordner 2024 ausgeblendet und der Ordner 2023 dauerhaft geöffnet bleibt:
{
"Themenconfig": {
"classicTree": [
{
"name": "01.01.2024",
"type": "folder",
"isAlwaysExpanded": false,
"isExpanded": false,
"children": [
{
"id": "2073",
"name": "Bodenrichtwerte: Bauland",
"visibility": false,
"isVisibleInTree": false
},
{
"id": "2075",
"name": "Bodenrichtwerte: land- und forstwirtschaftliche Flächen",
"visibility": false,
"isVisibleInTree": false
}
]
},
{
"name": "Bodenrichtwerte 01.01.2023",
"type": "folder",
"isAlwaysExpanded": true,
"isExpanded": true,
"children": [
{
"id": "2070",
"name": "Bauland",
"visibility": true
},
{
"id": "2072",
"name": "land- und forstwirtschaftliche Flächen",
"visibility": true
}
]
}
// … weitere Stichtage
]
}
}
Erklärung der Properties
Ordner 01.01.2024
- isAlwaysExpanded: false & isExpanded: false
Der Ordner wird geschlossen dargestellt und vollständig ausgeblendet. - isVisibleInTree (bei den Kinder-Layern): false
Die einzelnen Layer im Ordner sind ebenfalls nicht sichtbar.
Ordner 01.01.2023
- isAlwaysExpanded: true & isExpanded: true
Der Ordner bleibt dauerhaft geöffnet, sobald er ausgewählt wird. - visibility: true (bei allen Kinder-Layern)
Alle Layer im Ordner werden sofort aktiviert und angezeigt.
Konfiguration und Funktionalität des configSwitchers für Hintergrundkarten im Backgroundswitcher
In der Datei config.json können Hintergrundkarten definiert werden, die im Kartenviewer angezeigt werden sollen. Es gibt zwei Arten von Hintergrundkarten: configSwitcher-abhängige und configSwitcher-unabhängige Karten. Nachfolgend eine Übersicht zur Konfiguration:
1. ConfigSwitcher-abhängige Hintergrundkarten
Diese Karten sind durch den configSwitcher gesteuert und werden über die Konfiguration ausgewählt.
Ein Beispiel für WebAtlasDE Fix 2021 Brandenburg mit der ID 14002 (Basiskarte grau) und einer Halbtonvariante mit der ID 140021:
{
"name": "Hintergrundkarten",
"isVisibleInTree": false,
"type": "folder",
"children": [
{
"id": "14002",
"name": "Basiskarte",
"visibility": true,
"isNeverVisibleInTree": false,
"isVisibleInTree": false,
"isBRWBackground": true
},
{
"id": "140021",
"name": "Basiskarte",
"visibility": false,
"isNeverVisibleInTree": false,
"isVisibleInTree": false,
"isBRWBackground": true
}
]
}
Eigenschaften
ID-Zuweisung:
- Die ID ist entscheidend für die Steuerung der Webdienste im Backgroundswitcher.
- Die ID
14002ist die Default-ID und wird standardmäßig angezeigt. - Die ID
140021gehört zum selben Set wie14002und erweitert dessen Funktionalität. - Zusätzliche IDs (z. B.
140022,140023) können dem Set hinzugefügt werden.
Wichtig: Die Default-ID (14002) muss als Grundlage in den IDs des Sets enthalten sein.
Attribut isBRWBackground:
- Das Attribut
"isBRWBackground": trueweist darauf hin, dass diese Karten speziell für den BORIS Viewer vorgesehen sind. - Diese Karten werden im Backgroundswitcher durch spezifische Funktionen gesteuert.
2. ConfigSwitcher-unabhängige Hintergrundkarten
Diese Karten stehen unabhängig vom configSwitcher immer im Backgroundswitcher zur Auswahl.
Beispiel
Ein Beispiel für Luftbilder mit den IDs 291-bg und 290-bg sowie kombinierte Luftbilder und Topografie mit der ID 7004:
{
"id": ["291-bg", "290-bg"],
"name": "Luftbilder",
"visibility": false,
"isBRWBackground": false,
"isRestBackground": true,
"isVisibleInTree": false
},
{
"id": "7004",
"name": "Luftbilder & Topogr.",
"visibility": false,
"isBRWBackground": false,
"isRestBackground": true,
"isVisibleInTree": false
}
Eigenschaften
Unabhängig vom ConfigSwitcher:
- Diese Karten sind immer im Backgroundswitcher verfügbar, unabhängig von den Konfigurationen des
configSwitchers.
Attribute:
"isBRWBackground": falsezeigt an, dass diese Karten nicht speziell für den BORIS Viewer gedacht sind."isRestBackground": truekennzeichnet sie als allgemein verfügbare Hintergrundkarten.- Sie werden standardmäßig im Backgroundswitcher gelistet.
Zusammenfassung
-
ConfigSwitcher-abhängige Karten:
Werden durch die Attribute"isBRWBackground": trueund spezifische Sets definiert. Sie sind speziell für den BORIS Viewer optimiert und werden durch denconfigSwitchergesteuert. -
ConfigSwitcher-unabhängige Karten:
Werden durch"isBRWBackground": falseund"isRestBackground": truegekennzeichnet und stehen im Backgroundswitcher immer zur Verfügung.
Hintergrundkonfigurationen im ConfigSwitcher über einzelne JSON-Dateien
Konfiguration in der config.js (Aufbau)
In der config.js werden die einzelnen Konfigurationen definiert. Die Standardwerte und spezifischen Einstellungen sind wie folgt:
Standardwert
classicTreeCfgDefault: "01.01.2024"
Dieser Wert definiert den Standardwert für die Konfiguration.
Konfigurationen
Die Konfigurationen werden im Objekt classicTreeCfg definiert. Jede Konfiguration besteht aus einem Titel (title) und einer Datei (file), die den Ort der Dateikonfiguration angibt.
Beispiel für eine Konfiguration
cfg2024: {
title: "01.01.2024",
file: "configurations/BRW-2024.json"
}
Vollständige Liste der Konfigurationen
classicTreeCfg: {
cfg2024: {
title: "01.01.2024",
file: "configurations/BRW-2024.json"
},
cfg2023: {
title: "01.01.2023",
file: "configurations/BRW-2023.json"
},
cfg2022: {
title: "01.01.2022",
file: "configurations/BRW-2022.json"
},
cfg2020: {
title: "31.12.2020",
file: "configurations/BRW-2021.json"
},
cfg2019: {
title: "31.12.2019",
file: "configurations/BRW-2020.json"
},
cfg2018: {
title: "31.12.2018",
file: "configurations/BRW-2019.json"
},
cfg2017: {
title: "31.12.2017",
file: "configurations/BRW-2018.json"
},
cfg2016: {
title: "31.12.2016",
file: "configurations/BRW-2017.json"
},
cfg2015: {
title: "31.12.2015",
file: "configurations/BRW-2016.json"
},
cfg2014: {
title: "31.12.2014",
file: "configurations/BRW-2015.json"
},
cfg2013: {
title: "31.12.2013",
file: "configurations/BRW-2014.json"
},
cfg2012: {
title: "31.12.2012",
file: "configurations/BRW-2013.json"
},
cfg2011: {
title: "01.01.2012",
file: "configurations/BRW-2012.json"
},
cfg2010: {
title: "01.01.2011",
file: "configurations/BRW-2011.json"
},
cfg2009: {
title: "01.01.2010",
file: "configurations/BRW-2010.json"
},
cfg2022a: {
title: "01.01.2022 (Grundsteuer)",
file: "configurations/BRW-2022-grund.json",
label: "borderTop"
}
}
Besonderheiten
cfg2022a:- Titel: "01.01.2022 (Grundsteuer)"
- Datei:
configurations/BRW-2022-grund.json - Zusätzliches Label:
borderTop
Über den configSwitcher können verschiedene Hintergrundkonfigurationen aktiviert werden. Diese Konfigurationen sind in separaten JSON-Dateien definiert. Jede Datei beschreibt spezifische Eigenschaften und Dienste, die je nach Konfiguration ein- oder ausgeblendet werden.
Beispiel einer Konfiguration "configurations/BRW-2024.json"
Nach dem Wechsel zu einer Konfiguration werden folgende Änderungen vorgenommen:
-
Angezeigte Dienste:
- Die Dienste mit den IDs
14002und140021werden dargestellt. - Alle Dienste mit den Eigenschaften:
"isBRWBackground": false"isRestBackground": true
- Die Dienste mit den IDs
-
Besonderheit des Dienstes
1237:- Der Dienst
1237wird auf der Karte dargestellt. - Er erscheint jedoch nicht in der Auswahl des Backgroundswitchers, da er die Eigenschaft
"isNeverVisibleInTree": truebesitzt.
- Der Dienst
JSON-Struktur einer Beispielkonfiguration
{
"name": "Hintergrundkarten",
"isVisibleInTree": false,
"type": "folder",
"children": [
{
"id": "14002",
"name": "Basiskarte",
"visibility": true
},
{
"id": "140021",
"name": "Basiskarte",
"visibility": false
},
{
"id": "1237",
"name": "topplus",
"isVisibleInTree": false,
"isNeverVisibleInTree": true,
"visibility": true
}
]
}