Konfiguration
Config validieren
Eine Konfiguration vor dem Laden der Karte prüfen. Validierungsfehler nennen den JSON-Pfad der betroffenen Einstellung. Diese Seite verwendet den Validator des Viewers und zeigt weitere Möglichkeiten zur Prüfung.
Config einfügen
Diese Seite verwendet validateConfig von map0. Fehler verhindern das Laden der Karte. Bei Warnungen, etwa zu unbekannten Schlüsseln, wird die Karte geladen; die betroffenen Einstellungen sollten geprüft werden.
Vererbung: Der Viewer löst extends vor der Prüfung auf. Eine abgeleitete Konfiguration kann ihre Hintergrundkarten deshalb erben. Diese Seite prüft das eingefügte Dokument unverändert.
Jede Stelle, an der eine Config geprüft wird
Im Editor, noch beim Tippen
Ein $schema-Eintrag verknüpft die Konfiguration mit ihrem JSON Schema. Editoren wie VS Code und JetBrains können damit Autovervollständigung, Dokumentation und Validierung anbieten:
{
"$schema": "https://map0.net/schema/v1.json",
"version": 1,
"basemaps": [{ "type": "style", "url": "…" }]
}In der CI, bevor sie ausgeliefert wird
Ein JSON-Schema-Validator kann in der Build-Pipeline oder beim Speichern im CMS eingesetzt werden:
npx ajv-cli validate -s node_modules/map0-viewer/schema/v1.json -d my-map.map0.json
check-jsonschema bietet eine Python-Variante. Das Schema prüft Schlüssel, Typen, Wertebereiche und Pflichtfelder.
Im eigenen Code
Das npm-Paket exportiert den Validator über seinen SSR-Einstiegspunkt. Er läuft in Node ohne DOM und kann beispielsweise eine Konfiguration vor dem Speichern prüfen:
import { validateConfig } from "map0-viewer/ssr"; const { valid, errors, warnings } = validateConfig(config); // errors: [{ path: "$.layers[0].url", message: 'a "wms" layer needs a "url"' }]
Im Viewer, immer
Der Viewer prüft erneut vor der Darstellung und zeigt Fehler direkt an. Er prüft auch URL-Regeln, eindeutige IDs über Hintergrundkarten und Layer hinweg sowie Zusammenhänge zwischen Feldern, etwa dass min einer Farbrampe kleiner als max ist.
$.basemaps at least one basemap is required, e.g. { "type": "style", "url": "…" }
$.layers[2].url a "wms" layer needs a "url"
$.layers[2].layers a "wms" layer needs "layers" (WMS LAYERS parameter)Das veröffentlichte Schema
Dasselbe Schema ist an drei Stellen verfügbar:
https://map0.net/schema/v1.json: folgt der neuesten Version, für den$schema-Eintrag der Konfigurationhttps://cdn.jsdelivr.net/npm/map0-viewer@0.3.0/schema/v1.json: an eine Paketversion gebundennode_modules/map0-viewer/schema/v1.json: lokal mit dem installierten Paket verfügbar
Der Dateiname bezieht sich auf die Version des Konfigurationsformats ("version": 1). Die Beschreibungen im Schema liefern die Editor-Dokumentation. Tests vergleichen seine Schlüssel und Aufzählungswerte mit dem Laufzeit-Validator.