Konfiguration
Config-Vererbung
Gemeinsame Einstellungen mehrerer Karten lassen sich in einer Basiskonfiguration verwalten. Jede Karte kann die abweichenden Einstellungen überschreiben.
Was hier zu sehen ist: Drei Basemaps, der Home-Button, die Position der Legende und der Share-Link kommen alle aus der Basisdatei der Organisation. Diese Karte selbst deklariert nur einen Layer, eine Ansicht und ihre eigene Akzentfarbe.
Die Karten-Config
Kurz, weil sie erbt:
{
"$schema": "https://map0.net/schema/v1.json",
"version": 1,
"extends": "/configs/_base.map0.json",
"meta": { "title": "Noise map, inherits the organisation defaults" },
"map": { "center": [16.3725, 48.2083], "zoom": 13 },
"theme": { "primary": "#b45309" },
"layers": [
{
"id": "areas",
"type": "geojson",
"title": "Study areas",
"data": "/data/demo-areas.geojson",
"style": {
"fill-color": "#b45309",
"fill-opacity": 0.28,
"line-color": "#b45309",
"line-width": 2
},
"popup": { "title": "{{name}}" }
}
]
}Die gemeinsame Basis
Einmal zentral gepflegt und von jeder Karte der Organisation wiederverwendet:
{
"basemaps": [
{
"id": "grau",
"title": "Grey",
"type": "raster",
"url": "https://mapsneu.wien.gv.at/basemap/bmapgrau/normal/google3857/{z}/{y}/{x}.png",
"attribution": "© basemap.at",
"default": true
},
{
"id": "bmapv",
"title": "basemap.at",
"type": "style",
"url": "https://mapsneu.wien.gv.at/basemapv/bmapv/3857/resources/styles/root.json"
},
{
"id": "ortho",
"title": "Aerial",
"type": "raster",
"url": "https://mapsneu.wien.gv.at/basemap/bmaporthofoto30cm/normal/google3857/{z}/{y}/{x}.jpeg",
"maxZoom": 19,
"attribution": "© basemap.at"
}
],
"theme": { "primary": "#0e7490", "radius": "md" },
"controls": { "legend": { "position": "bottom-right" }, "home": true },
"permalink": true
}Merge-Regeln
- Objekte werden rekursiv zusammengeführt:
theme.primaryder abgeleiteten Konfiguration überschreibt den Basiswert, währendtheme.radiusaus der Basis erhalten bleibt - Arrays werden vollständig ersetzt; maßgeblich ist die Reihenfolge in der abgeleiteten Konfiguration
- Ketten bis zu drei Ebenen tief (global → Abteilung → Karte), mit Zykluserkennung
- Relative
extends-URLs werden relativ zu der Config-Datei aufgelöst, die sie deklariert
Arrays ersetzen. Um eine geerbte Layer-Liste zu ändern, wird die vollständige Liste in der abgeleiteten Konfiguration angegeben. So ist eindeutig festgelegt, welche Layer in welcher Reihenfolge erscheinen. Nicht überschriebene Einstellungen werden weiterhin aus der Basis übernommen.