Zum Hauptinhalt springen

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

Switcher-Konfiguration 2024 Ansicht 1
Ansicht des Konfigurations-Switchers für den Stichtag 01.01.2024

Switcher-Konfiguration 2024 Ansicht 2
Ausgeklappte Ordner und aktivierte Layer für 01.01.2024

Auswahl 01.01.2023

Switcher-Konfiguration 2023 Ansicht 1
Ansicht des Konfigurations-Switchers für den Stichtag 01.01.2023

Switcher-Konfiguration 2023 Ansicht 2
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 Standard­konfiguration an und muss exakt mit einem title in classicTreeCfg übereinstimmen.

  • classicTreeCfg
    Enthält alle verfügbaren Konfigurationen als Schlüssel‑Wert‑Paare:

    • Schlüssel (z. B. cfg2024): Eindeutiger Bezeichner
    • title: Datums­kennzeichnung (z. B. "01.01.2024"), wie sie im Menü angezeigt wird
    • file: Pfad zur JSON‑Datei mit den Konfigurationseinstellungen
// 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)
    Wenn true, bleibt der Eintrag dauerhaft unsichtbar

  • isExpanded
    Ob der Ordner standardmäßig aufgeklappt ist

  • children
    Array von Layer‑Definitionen mit:

    • id: Eindeutige Layer‑ID
    • name: Layer‑Name
    • visibility bzw. 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

  1. Initial

    • Nur der Ordner 01.01.2024 ist sichtbar (isVisibleInTree: true).
  2. Auswahl „01.01.2024“

    • BRW-2024.json überschreibt die Default‑Werte:
      • Ordner 01.01.2023 & 01.01.2022 → sichtbar
      • Ordner 01.01.2024isExpanded: true
      • Alle Layer im Ordner 01.01.2024 → aktiviert
  3. 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
  4. Zurück zu „01.01.2024“

    • BRW-2024.json stellt wieder her:
      • Ordner 01.01.2022 → sichtbar

Tipp: Jede BRW-YYYY.json‑Datei überschreibt nur die Default‑Definitionen in config.json und 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 14002 ist die Default-ID und wird standardmäßig angezeigt.
  • Die ID 140021 gehört zum selben Set wie 14002 und 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": true weist 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": false zeigt an, dass diese Karten nicht speziell für den BORIS Viewer gedacht sind.
  • "isRestBackground": true kennzeichnet sie als allgemein verfügbare Hintergrundkarten.
  • Sie werden standardmäßig im Backgroundswitcher gelistet.

Zusammenfassung

  • ConfigSwitcher-abhängige Karten:
    Werden durch die Attribute "isBRWBackground": true und spezifische Sets definiert. Sie sind speziell für den BORIS Viewer optimiert und werden durch den configSwitcher gesteuert.

  • ConfigSwitcher-unabhängige Karten:
    Werden durch "isBRWBackground": false und "isRestBackground": true gekennzeichnet 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:

  1. Angezeigte Dienste:

    • Die Dienste mit den IDs 14002 und 140021 werden dargestellt.
    • Alle Dienste mit den Eigenschaften:
      • "isBRWBackground": false
      • "isRestBackground": true
  2. Besonderheit des Dienstes 1237:

    • Der Dienst 1237 wird auf der Karte dargestellt.
    • Er erscheint jedoch nicht in der Auswahl des Backgroundswitchers, da er die Eigenschaft "isNeverVisibleInTree": true besitzt.

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
}
]
}