Die App Baumkataster bietet eine interaktive Visualisierung des kommunalen Baumbestands einer Stadt.
Die App ist für die Verwendung im Open Data App Store gemacht und entspricht der Open Data App.
Mehr zu Open Data Apps unter https://github.com/open-data-apps
Die App ist eine Single Page Application (Webapp) mit:
- Logo-Anzeige
- Menü
- Seiten für Impressum, Datenschutz, Beschreibung, Kontakt, Hauptinhalt
- Inhaltsbereich
- Fußzeile
Die Konfiguration wird vom ODAS geladen. Die App zeigt folgende Inhalte:
- Kennzahlen: Gesamtanzahl Bäume, Ø Baumalter, Ø Baumhöhe, Anzahl Stadtbezirke
- Top-15 Baumarten: Horizontales Balkendiagramm der häufigsten Baumarten
- Pflanzungen pro Jahrzehnt: Balkendiagramm der Neupflanzungen je Dekade
- Altersverteilung: Histogramm der Bäume nach Standalter
- Kartenansicht: Interaktive Karte mit allen Baumstandorten (Leaflet.js, OpenStreetMap)
- Heatmap (farbige Dichtekarte, unbegrenzte Anzahl Bäume)
- Einzelpunkte (WebGL-basiert mit Leaflet.glify, performant für sehr große Datenmengen, Popup mit Details)
- Umschaltbar zwischen Heatmap und Einzelpunkten
- Automatische Filterung nach Stadtbezirk/Baumart wirkt auch auf die Karte
- Kartenansicht: Interaktive Karte mit allen Baumstandorten (Leaflet.js, OpenStreetMap)
- Stadtbezirk-Filter: Alle Auswertungen und Karte filterbar nach Stadtbezirk
- Baumart-Suche: Freitextsuche zur Filterung nach Baumart
Die App unterstützt sowohl JSON als auch CSV als Datenquelle:
- JSON: API-Endpunkt gibt ein Objekt mit
results-Array zurück (z.B. OpenDataSoft/records-Endpunkt) - CSV: API-Endpunkt liefert Semikolon-separierte CSV-Datei (z.B. OpenDataSoft
/exports/csv-Endpunkt)
Die Erkennung erfolgt automatisch anhand der URL. CSV wird erkannt wenn die URL /exports/csv oder delimiter= enthält.
Die App ist kompatibel mit kommunalen Baumkataster-Datensätzen, die folgende Kernfelder enthalten:
| Schema-Feld | Beschreibung | Dortmund-Beispiel |
|---|---|---|
id |
Eindeutige Baum-ID | id |
art_botanisch |
Botanischer Artname | art_botani |
art_deutsch |
Deutscher Artname | art_deutsc |
pflanzjahr |
Pflanzjahr | pflanzjahr |
standalter_jahre |
Standalter in Jahren | standalter |
baumhoehe_m |
Baumhöhe in Metern | baumhoehe |
stadtbezirk_name |
Stadtbezirk | stadtbezbe |
Die Feldnamen können in der Instanz-Konfiguration der App angepasst werden.
- Docker / Docker Compose
- Make
Die Entwicklung wurde getestet unter Windows und Ubuntu.
make build upDie App wird gestartet und steht auf Port 8089 zur Verfügung: http://localhost:8089
Weil die App mit localhost gestartet wird, wird die Konfiguration lokal geladen.
Der Inhaltsbereich wird in app.js erstellt. Dort ist die gesamte Visualisierungslogik implementiert.
| Datei | Beschreibung |
|---|---|
app.js |
Hauptlogik: Datenladen, Aufbereitung, Chart.js-Diagramme, Leaflet-Karte |
app-package.json |
App-Metadaten und Instanz-Konfigurationsfelder für den ODAS |
schema.json |
Frictionless Data Schema – allgemeingültiges Datenmodell |
assets/odas-app-icon.svg |
App-Icon |
config.json |
Lokale Konfiguration für die Entwicklung |
Die App verwendet Leaflet.js, Leaflet.heat und Leaflet.glify für die performante Darstellung aller Baumstandorte – unabhängig von der Anzahl – als Heatmap oder Einzelpunkte. Die Einzelpunktdarstellung nutzt WebGL für maximale Performance auch bei sehr großen Datensätzen (z.B. >100.000 Bäume). Die Karte nutzt OpenStreetMap-Kacheln und benötigt keinen API-Key. Die Ansicht kann zwischen Heatmap und Einzelpunkten umgeschaltet werden. Die Filter (Bezirk, Baumart) wirken direkt auf die Karte.
Hinweis: Dank WebGL (Leaflet.glify) können alle Einzelpunkte auch bei sehr großen Datensätzen flüssig dargestellt werden.
Folgende Parameter werden bei der App-Instanzierung im ODAS konfiguriert:
| Parameter | Beschreibung | Pflicht |
|---|---|---|
apiurl |
URL zum JSON- oder CSV-Endpunkt der Baudaten | ja |
urlDaten |
URL zur Katalog-Seite des Datensatzes im ODP | ja |
stadtbezirk-feld |
Feldname für Stadtbezirk im Quelldatensatz | ja |
baumart-feld |
Feldname für deutschen Artnamen im Quelldatensatz | ja |
pflanzjahr-feld |
Feldname für Pflanzjahr im Quelldatensatz | ja |
baumhoehe-feld |
Feldname für Baumhöhe im Quelldatensatz | nein |
standalter-feld |
Feldname für Standalter im Quelldatensatz | nein |
titel |
Anzeigetitel der App | ja |
seitentitel |
Browser-Tab-Titel | ja |
Was bei der App-Entwicklung beachtet werden sollte, steht in der ODA-Spezifikation.
© 2026, Ondics GmbH