# Datenkarte > Offene Schnittstelle zur Visualisierung von Daten auf der Karte. Wer Daten mit Ortsbezug hat, veröffentlicht ein Manifest und GeoJSON-Daten nach dem Protokoll 0.1; das Portal Datenkarte lädt sie, prüft sie, speichert sie im Cache und zeigt sie gemeinsam mit den Daten anderer Quellen auf der Karte an – mit Quellenangabe. Das Portal wird von vrealmatic.com betrieben (https://vrealmatic.com/web). Agenten, die Fragen zu einem Ort beantworten („Liegt die Adresse im Überschwemmungsgebiet?“, „Wie ist die Luft in Linz?“), nutzen den MCP-Server https://datenkarte.at/mcp (Tools `find_place`, `nearby`, `summary`, `catalog`) oder die HTTP-API: `GET https://datenkarte.at/api/places?query=…`, `GET https://datenkarte.at/api/nearby?point=lon,lat&datasets=…`, `GET https://datenkarte.at/api/summary/{provider}/{dataset}?municipality=…`. Anleitung: https://datenkarte.at/dokumentation/ki-assistenten.md Die Daten bei den Anbietern bereiten typischerweise KI-Agenten vor. Das Vorgehen beschreibt die Anleitung für KI-Agenten; das fertige Ergebnis prüft der Validator (`POST https://datenkarte.at/api/validate`, Live-Test `GET https://datenkarte.at/api/validate?manifestUrl=…`). Dasselbe bietet der MCP-Server https://datenkarte.at/mcp (Streamable HTTP, ohne Authentifizierung). Die Dokumentation ist auf Deutsch; jede Seite hat eine Markdown-Version mit der Endung `.md`. ## Dokumentation - [Anleitung für KI-Agenten](https://datenkarte.at/dokumentation/fuer-ki-agenten.md): Vorgehen Schritt für Schritt, Regeln, Codevorlagen und Kriterien für eine fertige Arbeit für den Agenten, der die Daten eines Anbieters vorbereitet. - [Daten für KI-Assistenten](https://datenkarte.at/dokumentation/ki-assistenten.md): Wie Sie die Datenkarte mit einem KI-Assistenten verbinden (MCP, HTTP-API) und nach Orten und Daten fragen. - [Für Datenanbieter](https://datenkarte.at/dokumentation/fuer-datenanbieter.md): Wie Sie Daten anbinden: statische Dateien, eigener Endpunkt oder WMS; Manifest, Daten, Visualisierungen, Prüfung, Bedingungen. - [Protokoll 0.1](https://datenkarte.at/dokumentation/protokoll.md): Normative Spezifikation von Manifest, Datenabfrage, Antwort und Cache. - [Portal-API und MCP-Server](https://datenkarte.at/dokumentation/api.md): Katalog, Daten, Validator, MCP-Werkzeuge, Links auf die Karte und Fundcodes. - [Über das Projekt](https://datenkarte.at/dokumentation/ueber-das-projekt.md): Vision der Datenkarte, Prinzipien und Entwicklungsplan. ## Schemas und Verträge - [JSON Schema des Manifests](https://datenkarte.at/schema/0.1/manifest.json): was ein Anbieter über sich und seine Datensätze veröffentlicht - [JSON Schema der Daten](https://datenkarte.at/schema/0.1/data.json): GeoJSON-Antwort des Daten-Endpoints - [OpenAPI des Anbieters](https://datenkarte.at/schema/0.1/provider-openapi.json): Vertrag der Endpoints, die der Anbieter implementiert (daraus lässt sich ein Server generieren) - [OpenAPI des Portals](https://datenkarte.at/openapi.json): Katalog, Daten, Ort und Umgebung, Übersichten, Validator ## Beispiele - [manifest-minimal.json](https://datenkarte.at/beispiele/manifest-minimal.json): Das kleinste sinnvolle Manifest: eine statische GeoJSON-Datei, Modus full. - [manifest-complete.json](https://datenkarte.at/beispiele/manifest-complete.json): Manifest mit allen wichtigen Möglichkeiten: bbox, Filter, Farben nach Werten, Gruppierung, Choroplethenkarte, WMS. - [data-points.json](https://datenkarte.at/beispiele/data-points.json): Antwort mit Punkten einschließlich der dm-Erweiterung. - [data-polygons.json](https://datenkarte.at/beispiele/data-polygons.json): Antwort mit einer Fläche (Polygon) und einem numerischen Wert für die Choroplethenkarte. - [Beispielanbieter](https://datenkarte.at/api/sample/manifest): Referenzimplementierung des Protokolls über HTTP (fiktive Daten, nicht im Katalog) ## Daten im Portal - [Katalog in Markdown](https://datenkarte.at/quellen.md): 33 Datensätze von 16 Anbietern, mit Eigenschaften und Parametern - [Katalog in JSON](https://datenkarte.at/api/catalog) ## Optional - [Gesamte Dokumentation in einer Datei](https://datenkarte.at/llms-full.txt) --- # Anleitung für KI-Agenten: Daten an die Datenkarte anbinden {#navod-pro-ai-agenty-pripojeni-dat-do-datovemapy} Dieses Dokument richtet sich an KI-Agenten, die Daten für das Portal Datenkarte aufbereiten. Datenanbieter kann jede und jeder sein, die oder der Daten mit Ortsbezug hat. Es beschreibt Ziel, Vorgehen, Regeln und Abnahmekriterien. Ein Mensch, der den Agenten steuert, findet eine leichter verständliche Fassung im [Leitfaden für Datenanbieter](https://datenkarte.at/dokumentation/fuer-datenanbieter.md). ## Ziel {#cil} Über HTTPS veröffentlichen: 1. das **Manifest** – JSON gemäß [Manifest-Schema](https://datenkarte.at/schema/0.1/manifest.json), 2. für jeden Datensatz eine **Datenquelle** – eine GeoJSON-Datei oder einen Endpunkt gemäß [Datenschema](https://datenkarte.at/schema/0.1/data.json) und [OpenAPI-Vertrag für Anbieter](https://datenkarte.at/schema/0.1/provider-openapi.json), gegebenenfalls bestehende Rasterkacheln / WMS, und zwar so, dass der [Validator](https://datenkarte.at/dokumentation/api.md#validator) `"valid": true` und möglichst wenige Warnungen zurückgibt. ## Was Sie lesen sollten {#co-si-nacist} | Quelle | Wozu | |---|---| | [llms.txt](https://datenkarte.at/llms.txt) | Übersicht über die gesamte Dokumentation | | [Protokoll 0.1](https://datenkarte.at/dokumentation/protokoll.md) | normative Spezifikation – im Zweifel gilt sie | | [JSON Schema des Manifests](https://datenkarte.at/schema/0.1/manifest.json), [der Daten](https://datenkarte.at/schema/0.1/data.json) | genaue Typen, Grenzwerte und Feldbeschreibungen | | [OpenAPI für Anbieter](https://datenkarte.at/schema/0.1/provider-openapi.json) | Vertrag des Endpunkts, daraus lässt sich ein Server generieren | | [manifest-complete.json](https://datenkarte.at/beispiele/manifest-complete.json), [manifest-minimal.json](https://datenkarte.at/beispiele/manifest-minimal.json) | gültige Vorlagen | | [data-points.json](https://datenkarte.at/beispiele/data-points.json), [data-polygons.json](https://datenkarte.at/beispiele/data-polygons.json) | gültige Vorlagen für Antworten | | [Katalog](https://datenkarte.at/quellen.md) | was das Portal bereits enthält – vermeiden Sie Duplikate, lassen Sie sich von den Schlüsselwörtern inspirieren | Wenn Sie MCP nutzen können, verbinden Sie sich mit dem Server `https://datenkarte.at/mcp` (Streamable HTTP, ohne Authentifizierung). Die Werkzeuge `documentation`, `schema`, `example`, `validate_manifest`, `validate_data` und `catalog` decken alles in dieser Anleitung ab. Siehe [MCP-Server](https://datenkarte.at/dokumentation/api.md#mcp-server). ## Vorgehen {#postup} ### 1. Bestandsaufnahme der Daten {#1-inventura-dat} Ermitteln Sie, welche räumlichen Daten der Anbieter hat: Datenbanken (PostGIS, MS SQL), GIS-Dateien (SHP, GPKG, KML, CSV mit Koordinaten), bestehende APIs, WMS/WMTS-Dienste. Klären Sie für jede Quelle: - den Geometrietyp (Punkte / Linien / Flächen), - das Koordinatenreferenzsystem (in Österreich häufig **MGI / Austria Lambert, EPSG:31287** oder **Gauß-Krüger M28/M31/M34, EPSG:31257/31258/31259** – muss umgerechnet werden), - die Anzahl der Objekte und wie oft sie sich ändern, - die Lizenz und wer sie freigeben darf, - ob sie **personenbezogene Daten** enthält (Namen, Sozialversicherungsnummern, Adressen natürlicher Personen, Kfz-Kennzeichen …). ### 2. Entwurf der Datensätze {#2-navrh-datovych-sad} - Ein Datensatz = eine Art von Objekten mit einer Darstellungsweise. Müllcontainer und eine Lärmkarte gehören in zwei Datensätze. - `id` des Datensatzes und des Anbieters: Kleinbuchstaben ohne Umlaute und Sonderzeichen, Ziffern, Bindestriche (`muellcontainer`). Ändern Sie sie nach der Veröffentlichung nicht – sie ist Teil von Links. - Wahl der Quelle: | Situation | `source` | |---|---| | bis ca. 2 000 Objekte, Änderungen höchstens täglich | statische Datei, `"type": "geojson", "mode": "full"` | | mehr Objekte oder Live-Daten | Endpunkt, `"mode": "bbox"`, setzen Sie `coverage.bbox` und bei großen Datensätzen `coverage.minZoom` | | es gibt bereits WMS / XYZ-Kacheln | `"type": "raster"` mit der Vorlage `{bbox-epsg-3857}` oder `{z}/{x}/{y}`; ergänzen Sie `presentation.legend` (Farben und Beschriftungen aus der Legende des Dienstes, z. B. ArcGIS `…/MapServer/legend?f=json` oder WMS `GetLegendGraphic`) | ### 3. Umwandlung der Daten {#3-prevod-dat} - Koordinaten in **WGS84 (EPSG:4326), Reihenfolge `[lon, lat]`**. Für Österreich ist das etwa `[14, 47.5]`, nicht `[47.5, 14]`. - Runden Sie auf 6 Dezimalstellen (≈ 10 cm), alles Weitere vergrößert nur die Antwort. - Polygone müssen geschlossene Ringe haben (erster Punkt = letzter Punkt). - Jedes Objekt sollte eine stabile `id` haben. - Eigenschaften (`properties`) als einfache Werte – Zeichenketten, Zahlen, Booleans, Datumsangaben in ISO 8601. Kein HTML. - Zahlen als Zahlen (`1100`), nicht als Zeichenketten (`"1100 l"`); die Einheit gehört in `fields[].unit`. Umwandlung einer GIS-Datei in GeoJSON: ```bash ogr2ogr -f GeoJSON -t_srs EPSG:4326 -lco RFC7946=YES -lco COORDINATE_PRECISION=6 lavicky.geojson vstup.shp ``` Umrechnung von Koordinaten in Python: ```python from pyproj import Transformer to_wgs84 = Transformer.from_crs("EPSG:31287", "EPSG:4326", always_xy=True) lon, lat = to_wgs84.transform(x_lambert, y_lambert) # always_xy=True liefert [lon, lat] ``` ### 4. Manifest {#4-manifest} Füllen Sie nicht nur die Pflichtfelder aus, sondern auch jene, die darüber entscheiden, ob die Daten gefunden werden: - `description` – 1–2 Sätze: was die Daten enthalten, woher sie stammen, wie aktuell sie sind. - `keywords` – 5–15 Wörter und Synonyme auf Deutsch, einschließlich umgangssprachlicher und regionaler Formen (`Mistkübel` neben `Müllcontainer`). - `useCases` – wobei die Daten helfen: `construction`, `housing`, `land-purchase`, `agriculture`, `investment`, `transport`, `tourism`, `business`, `public-administration`. Danach wählt der Assistent des Portals die Daten zu Anfragen wie „Ich möchte in der Gemeinde X bauen“ aus. - `category` – eine von: `territory`, `nature`, `water`, `risks`, `energy`, `transport`, `society`, `economy`, `infrastructure`. - `fields` – jede Eigenschaft, die Nutzerinnen und Nutzer sehen sollen: `label`, `type`, `unit`. Markieren Sie eine als `primary` (Überschrift im Detail). - `license` – Name und Attributionstext. **Erfinden Sie keine Lizenz**; wenn Sie sie nicht kennen, fragen Sie den Menschen. - `temporal.updated`, `temporal.frequency` – Aktualität der Daten. - `temporal.param` – bei zeitbezogenen Daten (Unfälle, Messungen, Ereignisse): der Schlüssel eines Parameters vom Typ `range` mit Jahren (`min`/`max` = erstes und letztes Jahr), mit dem der Zeitraum gewählt wird. Die Antwort sollte dazu `dm.timeline` mit Anzahlen pro Jahr senden (bei Werten im Zeitverlauf wie der Einwohnerzahl stattdessen ein zusammenfassendes `dm.chart`), siehe [Zeitfilter](https://datenkarte.at/dokumentation/protokoll.md#casovy-filtr). - **Entwicklung im Zeitverlauf** – prüfen Sie, ob Objekte Werte für mehrere Zeiträume haben (Stände nach Jahren, Messungen, Preise). Wenn ja, senden Sie diese bei jedem Objekt immer in `dm.chart`; geht es im Datensatz um die Veränderung, färben Sie nach Trend. Siehe [Entwicklung im Zeitverlauf und Trend](https://datenkarte.at/dokumentation/protokoll.md#vyvoj-v-case-a-trend). ### 5. Visualisierung {#5-vizualizace} | Geometrie | Geeigneter Typ | Hinweis | |---|---|---| | Punkte, Dutzende bis Hunderte | `circle` | Farbe nach Kategorie (`categorical`), Beschriftung über `label` | | Punkte, Tausende | `circle` mit `cluster` oder `heatmap` | Heatmap nur für die Dichte, sie zeigt keine einzelnen Objekte | | Linien | `line` | die Breite kann von einem Wert abhängen | | Flächen mit Wert | `fill` + `interpolate` oder `step` | Choroplethenkarte; `opacity` 0.4–0.6, damit die Grundkarte sichtbar bleibt | | Punkte oder Flächen, deren Wert sich im Zeitverlauf ändert | `circle` / `fill` + `color: { "type": "trend" }` | wenn es um die Veränderung geht (steigt / sinkt); die Wertereihe in `dm.chart` bei jedem Objekt, den Trend berechnet das Portal | | Flächen ohne Wert | `fill` mit einer Farbe | | Regeln: Farben als Hex; Kategorien max. ~8 Farben; für Werte eine sequenzielle Skala von hell nach dunkel; `field` in der Darstellung muss einer Eigenschaft in den Daten entsprechen (und in `fields`, mit numerischem Typ bei `interpolate`/`step`). Hat der Wert eines Objekts eine Historie, senden Sie diese bei jeder Darstellung in `dm.chart` – auch bei einer Choroplethenkarte mit Jahresauswahl (das gewählte Jahr in `highlight`). ### 6. Endpunkt (nur bei `mode: "bbox"` oder Live-Daten) {#6-endpoint-jen-u-mode-bbox-nebo-zivych-dat} Implementieren Sie `GET` gemäß [OpenAPI-Vertrag](https://datenkarte.at/schema/0.1/provider-openapi.json): - Query `bbox=minLon,minLat,maxLon,maxLat` – geben Sie die Objekte zurück, die den Ausschnitt schneiden, - `zoom` – ganze Zahl; bei geringer Zoomstufe dürfen Sie Aggregationen zurückgeben, - `limit` – geben Sie nicht mehr Objekte zurück; wenn Sie kürzen, setzen Sie `dm.truncated: true` und `dm.total`, - eigene Parameter aus `params` (Bereich `von,bis`, mehrere Werte `a,b,c`), - `Content-Type: application/geo+json` oder `application/json`, HTTPS, Antwort innerhalb von 1 s, - unbekannte Query-Parameter ignorieren (`lang`, `protocol`, `cursor` können Sie übergehen). CORS ist nicht nötig – das Portal fragt vom Server aus ab. Python (FastAPI + PostGIS): ```python from fastapi import FastAPI app = FastAPI() @app.get("/datovamapa/kontejnery") def kontejnery(bbox: str | None = None, zoom: int | None = None, limit: int = 5000, druh: str | None = None): west, south, east, north = map(float, bbox.split(",")) if bbox else (-180, -90, 180, 90) druhy = druh.split(",") if druh else None rows = db.fetch_all( """ SELECT id, druh, objem, vyvoz::text, ST_AsGeoJSON(geom, 6)::json AS geometry FROM kontejnery WHERE geom && ST_MakeEnvelope(%s, %s, %s, %s, 4326) AND (%s::text[] IS NULL OR druh = ANY(%s)) LIMIT %s """, (west, south, east, north, druhy, druhy, limit + 1), ) features = [ {"type": "Feature", "id": r["id"], "geometry": r["geometry"], "properties": {"druh": r["druh"], "objem": r["objem"], "vyvoz": r["vyvoz"]}} for r in rows[:limit] ] return {"type": "FeatureCollection", "features": features, "dm": {"truncated": len(rows) > limit, "ttl": 3600}} ``` TypeScript (Cloudflare Worker / Node, Daten im Speicher): ```ts // KONTEJNERY: Array von GeoJSON-Features mit Punkten, beim Start geladen (aus der Datenbank oder einer Datei). declare const KONTEJNERY: { type: "Feature"; id: number; geometry: { type: "Point"; coordinates: [number, number] }; properties: Record }[]; export default { async fetch(request: Request): Promise { const url = new URL(request.url); const [west, south, east, north] = (url.searchParams.get("bbox") ?? "-180,-90,180,90").split(",").map(Number); const limit = Math.min(Number(url.searchParams.get("limit")) || 5000, 5000); const inside = KONTEJNERY.filter(({ geometry: { coordinates: [lon, lat] } }) => lon >= west && lon <= east && lat >= south && lat <= north); return Response.json( { type: "FeatureCollection", features: inside.slice(0, limit), dm: { total: inside.length, truncated: inside.length > limit } }, { headers: { "Content-Type": "application/geo+json", "Cache-Control": "public, max-age=300" } }, ); }, }; ``` ### 7. Validierung {#7-validace} Wiederholen Sie, bis keine Fehler mehr auftreten, und gehen Sie jede Warnung durch (beheben oder bewusst belassen und begründen): ```bash # Manifest (ohne Veröffentlichung) curl -sX POST https://datenkarte.at/api/validate -H 'Content-Type: application/json' --data @manifest.json # Daten gegen einen bestimmten Datensatz curl -sX POST https://datenkarte.at/api/validate -H 'Content-Type: application/json' \ --data "{\"data\": $(cat lavicky.geojson), \"dataset\": $(jq '.datasets[0]' manifest.json)}" # Live-Test des veröffentlichten Manifests und aller Quellen curl -s 'https://datenkarte.at/api/validate?manifestUrl=https://www.gemeinde-beispiel.at/datenkarte/manifest.json' ``` Antwort: `{ valid, summary, errors: [{ path, code, message, hint? }], warnings: [...] }`, beim Live-Test zusätzlich `datasets[]` mit Abfrage, Antwortzeit und Anzahl der Objekte. Die Bedeutung der Codes steht in der [API des Portals](https://datenkarte.at/dokumentation/api.md#kody-nalezu). ### 8. Übergabe an den Menschen {#8-predani-cloveku} Fassen Sie zum Schluss zusammen: - URL des Manifests und Liste der Datensätze (id, Titel, Quelltyp, Anzahl der Objekte), - Ergebnis des Live-Tests (`summary`, verbleibende Warnungen und warum sie bleiben), - was der Mensch bestätigen muss: **Lizenz und Attribution**, dass die Daten keine personenbezogenen Daten enthalten, Kontakt für das Portal, - wie die Daten aktualisiert werden (Skript, Cron, maßgebliche Quelle). Sobald der Mensch Lizenz und Inhalt bestätigt hat, registrieren Sie das Manifest: `POST https://datenkarte.at/api/registration` mit `{ "manifestUrl": "…" }` oder über das MCP-Werkzeug `register_provider`. Die Daten sind dann als ungeprüft verfügbar (mit Warnung, außerhalb des Katalogs), bis der Betreiber sie freigibt. Nach jeder Änderung des Manifests warten sie auf eine neue Freigabe. Einzelheiten: [Registrierung](https://datenkarte.at/dokumentation/fuer-datenanbieter.md#5-registrace). ## Regeln {#pravidla} - **Veröffentlichen Sie keine personenbezogenen Daten** (DSGVO). Im Zweifel aggregieren oder weglassen und nachfragen. - Erfinden Sie weder Lizenz noch Quelle noch Aktualität der Daten. - Fügen Sie in `properties` und `dm` kein HTML ein; das Portal zeigt alles als Text an. - Keine geheimen Schlüssel in URLs – das Manifest ist öffentlich. - Ändern Sie `provider.id` und `dataset.id` nach der Veröffentlichung nicht. - Verwenden Sie die Schlüssel `bbox`, `zoom`, `limit`, `cursor`, `lang`, `protocol` nicht für eigene Parameter. - Max. 5 000 Objekte und 15 MB pro Antwort, Antwort innerhalb von 10 s (Ziel ist unter 1 s). ## Abnahmekriterien {#kriteria-hotove-prace} - [ ] Das Manifest ist über HTTPS erreichbar und der Live-Test des Validators liefert `"valid": true`. - [ ] Jeder Datensatz hat `description`, `keywords`, `useCases`, `category` und (bei GeoJSON) `fields`. - [ ] Lizenz und Attribution sind vom Menschen bestätigt. - [ ] Die Koordinaten sind WGS84 `[lon, lat]`, keine Warnung `swapped_coordinates` oder `outside_coverage`. - [ ] Kein Datensatz liefert im Test 0 Objekte (`empty_response`), sofern das nicht beabsichtigt ist. - [ ] Objekte mit Werten für mehrere Zeiträume senden `dm.chart` (kein `missing_trend_chart` und kein `trend_without_chart`). - [ ] Die Antwortzeit der Endpunkte liegt unter 3 s (`slow_response`). - [ ] Die Daten enthalten keine personenbezogenen Daten. - [ ] Es ist beschrieben, wie die Daten aktualisiert werden. ## Auftrag für den Agenten (zum Kopieren) {#zadani-pro-agenta-ke-zkopirovani} Ein Mensch kann seinem Agenten diesen Text geben: ```text Bereite unsere räumlichen Daten für das Portal Datenkarte (https://datenkarte.at) auf. Gehe nach der Anleitung https://datenkarte.at/dokumentation/fuer-ki-agenten.md vor (Übersicht der Dokumentation: https://datenkarte.at/llms.txt, MCP-Server: https://datenkarte.at/mcp). Datenquellen: . Wo veröffentlichen: . Lizenz: – erfinde keine andere. Fertig ist es, wenn der Live-Test des Validators valid: true liefert und du die Abnahmekriterien erfüllt hast. Übergib mir am Ende eine Zusammenfassung gemäß Schritt 8. ``` --- # Daten der Datenkarte in Ihrem KI-Assistenten {#data-datovemapy-ve-vasem-ai-asistentovi} Die Datenkarte verbindet öffentliche Daten mit Ortsbezug aus verschiedenen Quellen – etwa Hochwasserzonen, Radon, Lärm, Schutzgebiete, Luftqualität, Denkmäler, Gemeindestatistiken, Wahlergebnisse und mehr. Verbinden Sie sie mit Ihrem KI-Assistenten und fragen Sie in Alltagssprache. Der Assistent lädt die Daten selbst, interpretiert sie und nennt die Quelle. Das ist kostenlos, ohne Registrierung und ohne Schlüssel. Es genügt ein Assistent, der MCP (Model Context Protocol) beherrscht, oder eine Anwendung, die eine HTTP-API aufruft. ## Was Sie fragen können {#na-co-se-muzete-zeptat} - *„Liegt die Adresse Hauptplatz 1 in Linz in einer Hochwasserzone? Und wie hoch ist dort das Radonpotenzial?“* - *„Ich kaufe ein Grundstück in der Gemeinde Neustift. Was sollte ich wissen – Risiken, Naturschutz, Lärm?“* - *„Wie ist die Luft gerade in Graz, und wo ist die nächste Messstelle zur Mariahilfer Straße 10 in Wien?“* - *„Wie hoch war die Wahlbeteiligung in Innsbruck, und wie haben die Parteien abgeschnitten?“* - *„Welche Denkmäler liegen im Umkreis von 500 m um die Getreidegasse 1 in Salzburg?“* Der Assistent findet den Ort im Adressverzeichnis, wählt passende Datensätze aus und fragt sie für den Punkt oder die Umgebung ab. Er antwortet mit Zahlen, Quelle und einem Link auf die Karte, auf der Sie das Ergebnis überprüfen können. ## Verbindung {#pripojeni} Adresse des MCP-Servers: `https://datenkarte.at/mcp` (Streamable HTTP, ohne Anmeldung). | Assistent | So verbinden Sie ihn | |---|---| | Claude (Web, Desktop) | in den Einstellungen der Konnektoren einen eigenen Konnektor mit der Adresse des MCP-Servers hinzufügen | | Claude Code | `claude mcp add --transport http datenkarte https://datenkarte.at/mcp` | | ChatGPT | im Entwicklermodus (developer mode) einen eigenen Konnektor / eine App mit der Adresse des MCP-Servers hinzufügen | | anderer MCP-Client | Konfiguration unten | ```json { "mcpServers": { "datenkarte": { "type": "http", "url": "https://datenkarte.at/mcp" } } } ``` Die Bezeichnungen in den Einstellungen unterscheiden sich je nach Assistent; suchen Sie nach „Konnektoren“, „MCP“ oder „eigene Werkzeuge“. Ein Assistent ohne MCP kann die [HTTP-API](https://datenkarte.at/dokumentation/api.md#misto-a-okoli) verwenden, die in [OpenAPI](https://datenkarte.at/openapi.json) beschrieben ist, z. B. als Aktionen eines eigenen GPT. ## Werkzeuge {#nastroje} | Werkzeug | Wofür | |---|---| | `find_place` | Adresse, Straße oder Gemeinde → Koordinaten | | `nearby` | was sich an einem Punkt und in der Umgebung befindet: Objekte nach Entfernung, in Rasterdatensätzen (Hochwasser, Radon, Lärm …) der Wert direkt am Punkt | | `summary` | Überblick über einen Datensatz für jede beliebige Gemeinde oder ganz Österreich: Anzahlen, Kategorien, höchste und niedrigste Werte | | `catalog` | welche Daten das Portal hat, mit Suche nach Text und Ort | | `fetch_data` | GeoJSON-Rohdaten samt Geometrien (für eigene Analysen) | Ein- und Ausgaben im Detail: [Portal-API und MCP-Server](https://datenkarte.at/dokumentation/api.md#mcp-server). ## Für Unternehmen und Entwickler {#pro-firmy-a-vyvojare} - Die HTTP-API (`/api/places`, `/api/nearby`, `/api/summary/…`, `/api/data/…`) ist öffentlich, ohne Schlüssel, mit CORS `*` (ausgenommen sind [Datensätze nur zur Anzeige](https://datenkarte.at/dokumentation/api#data)). Die Antworten sind JSON, das Portal hält sie im Cache. - Ein eigener Agent erhält dieselben Daten wie die Karte: GeoJSON-Datensätze lädt das Portal über seinen Proxy mit Cache, Rasterdatensätze fragt es für einen Punkt direkt bei der Quelle ab (WMS GetFeatureInfo, ArcGIS identify). - Jeder Datensatz hat eine eigene Lizenz und Namensnennung (`attribution`, `license` im Ergebnis und im [Katalog](https://datenkarte.at/quellen.md)). Halten Sie diese bei einer Weiterverwendung der Daten ein. - Wenn Sie eigene Daten in das Portal bringen möchten, beginnen Sie mit der [Anleitung für Datenanbieter](https://datenkarte.at/dokumentation/fuer-datenanbieter.md). ## Gut zu wissen {#co-je-dobre-vedet} - **Die Daten dienen der Information.** Das Portal übernimmt die Daten von den Anbietern und haftet nicht für ihre Richtigkeit. Rechtsverbindliche Auskünfte (Hochwasserzonen, Flächenwidmung, Grundbuch und Kataster) prüfen Sie bitte bei der Behörde oder beim Anbieter. Der Assistent soll in der Antwort Quelle und Datum der Daten nennen. - **Ein leeres Ergebnis heißt nicht immer „hier ist nichts“.** Bei Rasterdatensätzen bedeutet der Status `ok` ohne Treffer, dass sich am Punkt nichts befindet (z. B. außerhalb einer Hochwasserzone). Der Status `unavailable` bedeutet, dass die Quelle nur ein Bild liefert und keinen Wert am Punkt. Dann hilft der Link auf die Karte. - **Die Zusammenfassung für eine Gemeinde** funktioniert für jede Gemeinde Österreichs. Bei gleichnamigen Gemeinden (Krumbach) fragt der Assistent nach dem Bezirk. Konkrete Adressen erledigt `nearby`. - **Umfang einer Abfrage:** Umgebung höchstens 20 km, höchstens 12 Datensätze pro Abfrage. Datensätze, die erst bei starker Vergrößerung geladen werden (Bäume, Container), verkleinern die Umgebung und weisen darauf hin. - **Privatsphäre:** Das Portal braucht kein Konto und nichts über Sie. Die Adresse, nach der der Assistent fragt, geht nur an die Suche im Adressverzeichnis, die Koordinaten an die Datenquellen. --- # Binden Sie Ihre Daten an die Datenkarte an {#pripojte-sva-data-do-datovemapy} Die Datenkarte ist ein offenes Portal, das Daten aus vielen Quellen in einer gemeinsamen Karte darstellt. Um Karte, Stile oder Kartenserver müssen Sie sich nicht kümmern. Es genügt, ein **Manifest** (die Beschreibung Ihrer Daten) und die **Daten als GeoJSON** zu veröffentlichen. Das Portal fragt die Daten in dem Moment ab, in dem jemand sie einschaltet, stellt sie gemäß Ihrer Beschreibung dar und nennt Sie als Quelle. > **Bereitet ein KI-Agent die Daten auf?** Geben Sie ihm den Link zur [Anleitung für KI-Agenten](https://datenkarte.at/dokumentation/fuer-ki-agenten.md). Sie enthält ein schrittweises Vorgehen, Codevorlagen und Abnahmekriterien. Die gesamte Dokumentation ist maschinenlesbar: [llms.txt](https://datenkarte.at/llms.txt), [MCP-Server](https://datenkarte.at/dokumentation/api.md#mcp-server), [Validator](https://datenkarte.at/dokumentation/api.md#validator). ## Drei Arten der Anbindung {#tri-zpusoby-pripojeni} | Art | Wann | Was Sie brauchen | |---|---|---| | **Statische Dateien** | bis etwa 2 000 Objekte, Daten ändern sich gelegentlich | `manifest.json` + `data.geojson` auf einer beliebigen Website (auch GitHub Pages) | | **Eigener Endpunkt** | große oder Live-Datensätze | HTTP-GET-Endpunkt, der nach dem Kartenausschnitt (`bbox`) filtert | | **Bestehende WMS / Kacheln** | Sie betreiben einen Kartenserver | nur ein Manifest mit einer Quelle vom Typ `raster` | ## 1. Manifest {#1-manifest} Ein JSON, das Sie und Ihre Datensätze beschreibt. Verpflichtend ist nur das Minimum: `protocol`, `provider.id`, `provider.name` und bei jedem Datensatz `id`, `title`, `source` und `presentation`. Alles Weitere ist optional, hilft aber Menschen wie auch dem KI-Assistenten des Portals, die Daten zu finden und zu verstehen (`description`, `keywords`, `useCases`, `fields`). Das kleinste sinnvolle Manifest (statische Dateien, eine relative URL wird von der Adresse des Manifests aus aufgelöst): ```json manifest { "protocol": "0.1", "provider": { "id": "gemeinde-beispiel", "name": "Gemeinde Beispiel", "homepage": "https://www.gemeinde-beispiel.at/" }, "license": { "name": "CC BY 4.0", "attribution": "© Gemeinde Beispiel" }, "datasets": [ { "id": "lavicky", "title": "Sitzbänke in der Gemeinde", "description": "Öffentliche Sitzbänke, die von der Gemeinde betreut werden.", "category": "society", "keywords": ["Bank", "Sitzbank", "Rastplatz", "Park"], "useCases": ["tourism"], "source": { "type": "geojson", "url": "lavicky.geojson", "mode": "full" }, "presentation": { "type": "circle", "color": "#0d9488" }, "fields": [{ "key": "umisteni", "label": "Standort", "primary": true }] } ] } ``` Ein vollständiges Beispiel mit allen Möglichkeiten (Filter, Farben nach Werten, Gruppierung, Choroplethenkarte, WMS): [manifest-complete.json](https://datenkarte.at/beispiele/manifest-complete.json). ## 2. Daten {#2-data} Die Antwort ist eine GeoJSON-`FeatureCollection` mit Koordinaten in WGS84 in der Reihenfolge `[lon, lat]`. Das Element `dm` ist optional: Überschrift und Link beim Objekt, Gesamtzahl der Objekte, Gültigkeit der Antwort. ```json data { "type": "FeatureCollection", "features": [ { "type": "Feature", "id": 1842, "geometry": { "type": "Point", "coordinates": [14.2858, 48.3064] }, "properties": { "druh": "papier", "vyvoz": "2026-10-01" }, "dm": { "title": "Container Hauptplatz", "url": "https://www.stadt-beispiel.at/abfall/1842" } } ], "dm": { "total": 1, "ttl": 3600 } } ``` ### Wie das Portal abfragt {#jak-se-portal-pta} Modus `full` – der ganze Datensatz mit einer Abfrage. Modus `bbox` – das Portal sendet den an Kacheln ausgerichteten Kartenausschnitt und die Zoomstufe, dazu die vom Nutzer gesetzten Filter: ```http GET https://data.stadt-beispiel.at/datenkarte/kontejnery?bbox=14.238281,48.224673,14.414063,48.341646&zoom=11&limit=5000&lang=de&protocol=0.1&druh=papier,plast Accept: application/geo+json, application/json User-Agent: DatovaMapa/0.1 (+https://datenkarte.at/dokumentation/fuer-datenanbieter) ``` Geben Sie höchstens `limit` Objekte zurück (max. 5 000). Setzen Sie bei großen Datensätzen `coverage.minZoom` oder liefern Sie bei geringer Zoomstufe aggregierte Daten. ## 3. Visualisierung {#3-vizualizace} | `presentation.type` | Geometrie | Typische Verwendung | |---|---|---| | `circle` | Punkte | Orte, Farbe nach Kategorie, Größe nach Wert, Gruppierung | | `heatmap` | Punkte | Dichte des Vorkommens, optional nach Wert gewichtet | | `line` | Linien | Routen, Netze, Fließgewässer | | `fill` | Flächen | Gebiete, Choroplethenkarte nach Wert | | `raster` | Kacheln | fertige Kartenebenen (WMS, XYZ); die Legende geben Sie in `legend` an | | `auto` | beliebig | Standarddarstellung | Farben werden immer hexadezimal angegeben. Die Farbe kann von einer Eigenschaft des Objekts abhängen – nach Kategorie (`categorical`), stufenlos (`interpolate`) oder in Intervallen (`step`). Einzelheiten im [Protokoll](https://datenkarte.at/dokumentation/protokoll.md#presentation). Weitere Typen kommen hinzu; einen Typ, den das Portal nicht kennt, stellt es als `auto` dar. Daten, deren Wert sich im Zeitverlauf ändert (Einwohnerzahl, Preise, Messungen), haben im Standard eine eigene Darstellung: Senden Sie bei jedem Objekt die Wertereihe in `dm.chart`, und das Portal zeigt sie als Diagramm im Detail. Geht es vor allem darum, ob ein Wert steigt oder sinkt, setzen Sie `color: { "type": "trend" }` – das Portal färbt die Objekte anhand des Diagramms selbst grün, grau und rot und ergänzt die Legende. Einzelheiten im [Protokoll](https://datenkarte.at/dokumentation/protokoll.md#vyvoj-v-case-a-trend). ## 4. Prüfung {#4-overeni} Bevor Sie das Manifest einreichen, lassen Sie es vom Validator prüfen. Er liefert Fehler und Empfehlungen mit stabilen Codes und Hinweisen zur Behebung: ```bash curl -X POST https://datenkarte.at/api/validate -H 'Content-Type: application/json' --data @manifest.json curl 'https://datenkarte.at/api/validate?manifestUrl=https://data.stadt-beispiel.at/datenkarte/manifest.json' ``` Der zweite Befehl führt einen Live-Test durch: Er lädt das Manifest herunter und sendet an jeden Datensatz dieselbe Abfrage, die auch das Portal senden würde. ## 5. Registrierung {#5-registrace} Sobald der Validator `"valid": true` meldet, registrieren Sie die URL des Manifests unter [datenkarte.at/registrierung](https://datenkarte.at/registrierung), über die API oder das MCP-Werkzeug `register_provider`: ```bash curl -X POST https://datenkarte.at/api/registration -H 'Content-Type: application/json' --data '{"manifestUrl": "https://data.stadt-beispiel.at/datenkarte/manifest.json"}' ``` Das Portal prüft das Manifest erneut mit einem Live-Test. Danach gilt: - **Die Daten sind sofort verfügbar, aber ungeprüft.** Jeder Datensatz hat seine Seite `/karte/{provider}/{dataset}`. Vor der Anzeige der Daten erscheint dort eine Warnung, dass die Daten von Dritten hochgeladen wurden und der Betreiber sie noch nicht geprüft hat. Die Daten werden erst nach Bestätigung durch die Nutzerin oder den Nutzer geladen. Die Seite ist von Suchmaschinen ausgeschlossen. Eine Übersicht finden Sie unter [ungeprüfte Daten](https://datenkarte.at/ungepruefte-daten). - **Nach der Freigabe durch den Betreiber** erscheinen die Daten im [Katalog](https://datenkarte.at/quellen.md), in der Suche und auf den Seiten der Gemeinden. - **Die Freigabe gilt für einen bestimmten Inhalt des Manifests.** Ändern Sie das Manifest, werden die Daten bis zur erneuten Freigabe wieder nur mit Warnung angezeigt. Die Daten selbst (GeoJSON) können Sie laufend ändern. - `provider.id` ist mit der ersten Registrierung vergeben. Ändern Sie weder sie noch die URL des Manifests. Mit der Registrierung bestätigen Sie, dass Sie die Daten unter der angegebenen Lizenz veröffentlichen dürfen und dass sie keine personenbezogenen Daten enthalten. Der Betreiber kann die Registrierung jederzeit ablehnen; die Daten verschwinden dann aus dem Portal. ## Cache und Bedingungen {#cache-a-podminky} - Antworten halten wir für die Dauer von `cache.ttl` (standardmäßig 5 Minuten) im Cache, damit Ihr Server nicht durch wiederholte Abfragen belastet wird. Bei einem Ausfall können wir kurzzeitig die zuletzt bekannten Daten mit einem Hinweis anzeigen. - Im Interesse der Geschwindigkeit, der Schonung Ihrer Ressourcen, der Nachhaltigkeit, der Verknüpfung von Zusammenhängen zwischen Quellen und der Arbeit mit großen Datenmengen können wir die Daten auch in einer eigenen Datenschicht speichern. Wenn Sie das nicht möchten, setzen Sie beim Datensatz `cache.store: false`. - Wir nennen Sie immer als Quelle gemäß den Angaben in der Lizenz des Manifests. - Wir fragen Daten nur bei registrierten Anbietern ab, mit einem Zeitlimit von 10 s und einer Größenbeschränkung der Antwort von 15 MB. - Veröffentlichen Sie keine personenbezogenen Daten. Für den Inhalt der Daten ist der Anbieter verantwortlich. ## Links {#odkazy} - [Protokoll 0.1 – vollständige Spezifikation](https://datenkarte.at/dokumentation/protokoll.md) - [Anleitung für KI-Agenten](https://datenkarte.at/dokumentation/fuer-ki-agenten.md) - [API des Portals, Validator und MCP-Server](https://datenkarte.at/dokumentation/api.md) - [JSON Schema des Manifests](https://datenkarte.at/schema/0.1/manifest.json) · [JSON Schema der Daten](https://datenkarte.at/schema/0.1/data.json) · [OpenAPI-Vertrag für Anbieter](https://datenkarte.at/schema/0.1/provider-openapi.json) - Referenzimplementierung (erfundene Daten, nicht im Katalog des Portals): [Manifest](https://datenkarte.at/api/sample/manifest), [Daten](https://datenkarte.at/api/sample/krajska-mesta) --- # Protokoll Datenkarte 0.1 {#protokol-datovamapa-0-1} Normative Beschreibung der Schnittstelle zwischen Datenanbieter und Portal. Bei Widersprüchen zu anderer Dokumentation gelten dieses Dokument und die maschinenlesbaren Schemata: - [JSON Schema des Manifests](https://datenkarte.at/schema/0.1/manifest.json) und [JSON Schema der Daten](https://datenkarte.at/schema/0.1/data.json) – generiert aus den zod-Schemata in `src/lib/protocol/`, - [OpenAPI-Vertrag des Anbieters](https://datenkarte.at/schema/0.1/provider-openapi.json). Die Datenaufbereitung Schritt für Schritt (vor allem für KI-Agenten) beschreibt die [Anleitung für KI-Agenten](https://datenkarte.at/dokumentation/fuer-ki-agenten.md), eine verständliche Einführung bietet der [Leitfaden für Datenanbieter](https://datenkarte.at/dokumentation/fuer-datenanbieter.md). Gültige Vorlagen: [manifest-complete.json](https://datenkarte.at/beispiele/manifest-complete.json), [data-points.json](https://datenkarte.at/beispiele/data-points.json). ## Überblick {#prehled} ``` Anbieter Portal Datenkarte Browser ──────── ───────────────── ─────── manifest.json ◄── GET (Cache 10 min) ── Register → Katalog ─────────► /api/catalog Daten-Endpoint ◄── GET ?bbox&zoom&… ──── Proxy + Validierung + Cache ─► /api/data/{provider}/{dataset} Rasterkacheln ◄─────────────────────────────────────────────────────── direkt aus dem Browser ``` ## Allgemeine Regeln {#obecna-pravidla} - Format JSON, Kodierung UTF-8, Koordinaten in WGS84 (EPSG:4326) in der Reihenfolge `[lon, lat]`. Daten in MGI / Austria Lambert (EPSG:31287) oder Gauß-Krüger M28/M31/M34 (EPSG:31257/31258/31259) müssen vorher nach WGS84 umgerechnet werden. - Kommunikation über HTTPS (http nur für `localhost` während der Entwicklung). - **Unbekannte Felder werden ignoriert.** Ein unbekannter `presentation`-Typ wird als `auto` dargestellt. - Version `protocol` im Format `major.minor`. Das Portal akzeptiert Manifeste mit derselben Hauptversion. - Bezeichner (`provider.id`, `dataset.id`): Kleinbuchstaben ohne Umlaute und Sonderzeichen, Ziffern, Bindestriche, max. 64 Zeichen. Der globale Schlüssel eines Datensatzes ist `provider/dataset`. - Farben nur in Hex-Schreibweise (`#rgb`, `#rrggbb`, `#rrggbbaa`). ## Manifest {#manifest} | Feld | Pflicht | Beschreibung | |---|---|---| | `protocol` | ja | Protokollversion, z. B. `"0.1"` | | `provider.id` | ja | Bezeichner; muss der id im Register des Portals entsprechen | | `provider.name` | ja | Name, der als Quelle angezeigt wird | | `provider.description`, `homepage`, `logo`, `contact` | nein | | | `provider.managedBy` | nein | `provider` (Standard) / `portal` – das Manifest für einen öffentlichen Dienst pflegt die Datenkarte | | `license` | nein | `{ name, url?, attribution }` – Standardlizenz aller Datensätze | | `datasets[]` | ja | 1–200 Datensätze mit eindeutiger `id` | ### Datensatz {#datova-sada} | Feld | Pflicht | Beschreibung | |---|---|---| | `id`, `title` | ja | | | `description` | nein | | | `category` | nein | `territory`, `nature`, `water`, `risks`, `energy`, `transport`, `society`, `economy`, `infrastructure`, `sample`, `other`; anderer Wert → Sonstiges | | `tags`, `keywords` | nein | Für die Suche und den künftigen Assistenten | | `useCases` | nein | Zwecke, für die sich der Datensatz eignet: `construction`, `housing`, `land-purchase`, `agriculture`, `investment`… | | `coverage` | nein | `{ bbox?, area?, minZoom?, maxZoom? }` – unterhalb von `minZoom` lädt das Portal keine Daten | | `temporal` | nein | `{ updated?, frequency?, param? }` – `param` = Schlüssel des Parameters, mit dem der Zeitraum gewählt wird (siehe [Zeitfilter](https://datenkarte.at/dokumentation/protokoll.md#casovy-filtr)) | | `license` | nein | Überschreibt die Lizenz des Anbieters | | `source` | ja | Woher die Daten kommen (siehe unten) | | `presentation` | ja | Wie die Daten dargestellt werden (siehe unten) | | `fields[]` | nein | Beschreibung der Objekteigenschaften: `key`, `label`, `type`, `unit`, `decimals`, `description`, `primary` | | `params[]` | nein | Filter für die Nutzerinnen und Nutzer (siehe unten) | | `cache` | nein | `{ ttl?: Sekunden, store?: boolean }` | ### `source` {#source} **`geojson`** – das native Format. ```json { "type": "geojson", "url": "/data/container", "mode": "bbox", "maxFeatures": 5000 } ``` - `url` kann relativ zur URL des Manifests sein. Quelle kann auch eine **statische Datei** sein (`parkbaenke.geojson` neben `manifest.json` auf beliebigem Webhosting) – im Modus `full` verlangt das Portal keine Query-Parameter, die Datei ist ein gültiger Endpoint. - `mode: "full"` – der ganze Datensatz mit einer Anfrage (kleine Datensätze). `mode: "bbox"` – das Portal fragt den Kartenausschnitt ab. - `maxFeatures` ≤ 5000. **`raster`** – fertige Kacheln, der Browser lädt sie direkt von der Quelle. ```json { "type": "raster", "tiles": ["https://…/{z}/{x}/{y}.png"], "tileSize": 256, "minZoom": 0, "maxZoom": 19 } ``` Die Vorlagen unterstützen `{z}/{x}/{y}` und `{bbox-epsg-3857}` (WMS GetMap). Nur https. ### `presentation` {#presentation} | `type` | Geometrie | Optionen | |---|---|---| | `circle` | Punkte | `color`, `radius`, `opacity`, `strokeColor`, `strokeWidth`, `label`, `cluster` | | `heatmap` | Punkte | `weight`, `radius`, `intensity`, `colors[]`, `opacity` | | `line` | Linien | `color`, `width`, `opacity`, `dash[]`, `label` | | `fill` | Flächen | `color`, `opacity`, `outlineColor`, `outlineWidth`, `label` | | `raster` | Kacheln | `opacity` | | `auto` | beliebig | `color` | Alle Typen haben eine optionale `legend: [{ label, color }]` (max. 20 Einträge). Das Portal zeigt sie in der Legende direkt in der Karte und in der Ebenenauswahl. Bei Vektortypen kann es sie aus den Farben ableiten, bei `raster` nicht – die Farben sind in die Kachelbilder eingebrannt, geben Sie die Legende eines Rasters daher selbst an (z. B. aus der Legende des WMS- bzw. ArcGIS-Dienstes übernommen). **Farbe** (`color`) ist entweder ein Hex-String oder eine Regel nach einer Objekteigenschaft: ```json { "field": "art", "type": "categorical", "values": { "papier": "#2563eb" }, "default": "#64748b" } { "field": "wert", "type": "interpolate", "stops": [[0, "#f7fcb9"], [100, "#004529"]] } { "field": "wert", "type": "step", "default": "#eee", "stops": [[10, "#fc8"], [50, "#e34"]] } { "type": "trend" } ``` `trend` färbt Objekte danach, ob ihr Wert im Zeitverlauf steigt, stagniert oder sinkt. Das Portal berechnet ihn aus dem Verlaufsdiagramm `dm.chart` – siehe [Entwicklung im Zeitverlauf und Trend](https://datenkarte.at/dokumentation/protokoll.md#vyvoj-v-case-a-trend). **Zahl** (`radius`, `width`, `weight`) ist eine Zahl oder `{ "field", "type": "interpolate", "stops": [[Wert, Zahl], …] }`. **Beschriftung** (`label`): `{ field, minZoom?, color?, size? }`. ### `params` {#params} Ein Filter, den die Nutzerin oder der Nutzer im Portal einstellt; das Portal sendet ihn als Query-Parameter `key=value`. | `type` | Wert in der Anfrage | |---|---| | `enum` | `key=a` (aus `options`) | | `multi-enum` | `key=a,b,c` | | `number` | `key=42` (im Bereich `min`–`max`) | | `range` | `key=von,bis` | | `boolean` | `key=true` / `false` | | `date` | `key=2026-10-06` | | `date-range` | `key=2026-01-01,2026-12-31` | | `text` | `key=…` (max. 200 Zeichen) | Die Schlüssel `bbox`, `zoom`, `limit`, `cursor`, `lang`, `protocol` sind reserviert. Das Portal sendet nur deklarierte Parameter und prüft die Werte vorab; ein nicht ausgefüllter Parameter wird durch `default` ersetzt. ### Zeitfilter {#casovy-filtr} Zeitbezogene Daten (Unfälle, Messungen, Ereignisse) haben einen Parameter für den Zeitraum und verweisen über `temporal.param` darauf. Das Portal zeigt ihn dann nicht bei den übrigen Filtern, sondern als Zeitachse im Fenster unter der Legende: einen Schieberegler für den Zeitraum und ein Säulendiagramm nach Jahren, in dem sich der Zeitraum per Klick oder Ziehen wählen lässt. Der gewählte Zeitraum ist auch bei der Ebene in der Legende zu sehen. - Typ `range` mit Jahren – `min` und `max` sind das erste und letzte Jahr der Daten, der Wert `von,bis` (z. B. `2019,2023`, ein einzelnes Jahr `2023,2023`). Geben Sie die Objekte für den ganzen Zeitraum gemeinsam (zusammengefasst) zurück, nicht nach einzelnen Jahren. - Typ `date-range` – Zeitraum tageweise, `2026-01-01,2026-06-30`. ```json manifest { "protocol": "0.1", "provider": { "id": "stadt-beispiel", "name": "Stadt Beispiel" }, "license": { "name": "CC BY 4.0", "attribution": "© Stadt Beispiel" }, "datasets": [{ "id": "unfaelle", "title": "Verkehrsunfälle", "description": "Von der Polizei erfasste Unfälle nach Unfallfolgen.", "category": "transport", "keywords": ["Unfall", "Verkehrsunfall", "Verkehrssicherheit", "Verletzung", "Kreuzung"], "useCases": ["transport", "housing"], "coverage": { "bbox": [15.35, 47.0, 15.55, 47.13], "minZoom": 12 }, "temporal": { "frequency": "jährlich", "param": "obdobi" }, "source": { "type": "geojson", "url": "https://data.stadt-beispiel.at/datenkarte/unfaelle", "mode": "bbox", "maxFeatures": 5000 }, "presentation": { "type": "circle", "color": { "field": "folgen", "type": "categorical", "values": { "Personenschaden": "#dc2626", "Sachschaden": "#facc15" }, "default": "#facc15" } }, "fields": [ { "key": "folgen", "label": "Unfallfolgen", "type": "string", "primary": true }, { "key": "datum", "label": "Datum", "type": "date" } ], "params": [{ "key": "obdobi", "label": "Zeitraum", "type": "range", "min": 2015, "max": 2025, "step": 1, "default": "2025,2025" }] }] } ``` Das Diagramm zeichnet das Portal aus `dm.timeline` in der Antwort (siehe [Datenantwort](https://datenkarte.at/dokumentation/protokoll.md#datova-odpoved)). Bei Werten im Zeitverlauf, bei denen Objektanzahlen keinen Sinn ergeben (Einwohnerzahl, Preis), senden Sie stattdessen die zusammengefasste Entwicklung in `dm.chart` – das Portal zeigt sie beim Schieberegler als Liniendiagramm, siehe [Entwicklung im Zeitverlauf und Trend](https://datenkarte.at/dokumentation/protokoll.md#vyvoj-v-case-a-trend). Ohne beides bleibt nur der Schieberegler für den Zeitraum. ### Entwicklung im Zeitverlauf und Trend {#vyvoj-v-case-a-trend} Die Standarddarstellung für Daten, deren Wert sich bei einem Objekt im Lauf der Zeit ändert – Einwohnerzahl einer Gemeinde, Preis, gemessene Konzentration, Besucherzahlen. Wann immer die Daten eine solche Zeitreihe haben, senden Sie sie mit; das Portal zeichnet daraus selbst ein Diagramm und kann danach einfärben. - **Verlaufsdiagramm.** Hat ein Objekt Werte für mehrere Zeiträume, senden Sie sie in `feature.dm.chart` (siehe [Datenantwort](https://datenkarte.at/dokumentation/protokoll.md#datova-odpoved)). Das Portal zeigt sie im Objektdetail als Liniendiagramm mit dem Wert für den gewählten Zeitraum und der Veränderung gegenüber dessen Beginn. Das gilt auch für Kartogramme, bei denen das Jahr per Parameter gewählt wird: Senden Sie die Reihe für alle Jahre und das gewählte Jahr als `highlight` mit gleichem `from` und `to`. Färbt ein Datensatz nach einem Zahlenwert, wird der Zeitraum per Parameter gewählt und fehlt das Diagramm, meldet der Validator `missing_trend_chart`. - **Zusammenfassendes Diagramm bei der Legende.** Die Entwicklung für das gesamte Gebiet des Datensatzes oder für den Ausschnitt (z. B. die Bevölkerung Österreichs) senden Sie in `dm.chart` der Antwort – in derselben Form wie das Diagramm eines Objekts. Das Portal zeigt es beim Zeitfilter, solange kein Objekt geöffnet ist, und markiert den gewählten Zeitraum nach `highlight`. Färbt der Datensatz nach Trend, erhält die Linie die Trendfarbe des Ganzen – so ist zu sehen, ob die grünen Punkte nicht bloß die bundesweite Entwicklung nachzeichnen. - **Farbe nach Trend.** Geht es bei einem Datensatz um die Veränderung („wächst es oder schrumpft es?“), setzen Sie `color: { "type": "trend" }`. Das Portal berechnet aus dem Diagramm jedes Objekts die durchschnittliche Veränderung pro Zeitraum in % des Anfangswerts – im hervorgehobenen Zeitraum (`highlight`), sonst über die ganze Reihe. Ab `threshold` (standardmäßig 0,5 %) **steigt** der Wert (grün), ab −`threshold` abwärts **sinkt** er (rot), dazwischen **stagniert** er (grau). Die Farben lassen sich über `colors: { up, flat, down }` überschreiben, etwa wenn Wachstum unerwünscht ist. Die Legende leitet das Portal selbst ab und färbt das Diagramm im Detail genauso wie das Objekt in der Karte. Ein Objekt ohne Diagramm bleibt hellgrau (`trend_without_chart`). Der Trend beruht auf der relativen Veränderung und eignet sich daher für positive Größen (Anzahlen, Preise, Konzentrationen). Werte um null, etwa den Wanderungssaldo, färben Sie über `interpolate` ein und zeigen die Entwicklung nur im Diagramm. ```json manifest { "protocol": "0.1", "provider": { "id": "land-beispiel", "name": "Land Beispiel" }, "license": { "name": "CC BY 4.0", "attribution": "© Land Beispiel" }, "datasets": [{ "id": "bevoelkerungsentwicklung", "title": "Bevölkerungsentwicklung der Gemeinden", "description": "Wo die Bevölkerung wächst und wo sie schrumpft. Farbe nach dem Trend im gewählten Zeitraum, im Detail der Gemeinde ein Diagramm nach Jahren.", "category": "society", "keywords": ["Bevölkerung", "Entwicklung", "Trend", "Wachstum", "Abwanderung"], "useCases": ["housing", "public-administration"], "temporal": { "frequency": "jährlich", "param": "obdobi" }, "source": { "type": "geojson", "url": "https://data.land-beispiel.at/datenkarte/bevoelkerung" }, "presentation": { "type": "circle", "color": { "type": "trend", "threshold": 0.5 }, "radius": 7 }, "fields": [ { "key": "nazev", "label": "Gemeinde", "type": "string", "primary": true }, { "key": "obyvatel", "label": "Einwohner am Ende des Zeitraums", "type": "integer" } ], "params": [{ "key": "obdobi", "label": "Zeitraum", "type": "range", "min": 2015, "max": 2025, "step": 1, "default": "2015,2025" }] }] } ``` Die Antwort sendet dann für jede Gemeinde die Reihe für alle Jahre und den gewählten Zeitraum in `highlight`, zum Beispiel `{ "from": "2015", "to": "2025" }`. ## Datenanfrage {#datovy-dotaz} ``` GET {source.url}?bbox=minLon,minLat,maxLon,maxLat&zoom=10&limit=5000&lang=de&protocol=0.1[&cursor=…][&{params}] Accept: application/geo+json, application/json User-Agent: DatovaMapa/0.1 (+https://datenkarte.at/dokumentation/fuer-datenanbieter) ``` - `bbox` und `zoom` nur im Modus `bbox`. Der Ausschnitt ist **an den Kacheln** der Stufe `zoom` (ganze Zahl) **ausgerichtet**, sodass nahe beieinanderliegende Ansichten zur selben Anfrage führen – Anbieter wie Portal können die Antworten cachen. - `limit` = wie viele Objekte das Portal höchstens verarbeitet. - Zeitlimit für die Antwort 10 s, Größe max. 15 MB. ## Datenantwort {#datova-odpoved} GeoJSON `FeatureCollection` (RFC 7946). Unterstützte Geometrien: `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`. Objekte mit `geometry: null` werden übersprungen. Optionale Erweiterungen: ```json { "type": "FeatureCollection", "features": [{ "type": "Feature", "id": 1, "geometry": {…}, "properties": {…}, "dm": { "title": "…", "description": "…", "url": "https://…", "color": "#e11d48", "chart": {…} } }], "dm": { "generated": "2026-10-06T08:00:00Z", "ttl": 3600, "total": 1, "truncated": false, "next": "…", "notice": "…", "timeline": […] } } ``` - `feature.dm` – Titel und Beschreibung im Detail, Link zum Detail bei der Quelle, Überschreiben der Farbe, Verlaufsdiagramm. - `feature.dm.chart` – die Entwicklung eines Werts des Objekts über die Zeit, die das Portal im Objektdetail als Liniendiagramm mit dem Wert für den letzten Zeitraum zeichnet (z. B. die Einwohnerzahl einer Gemeinde nach Jahren) und aus der es die Farbe nach Trend berechnet. `label` sagt, was das Diagramm zeigt, optional sind `unit`, `decimals`, `note` (Anmerkung unter dem Diagramm, z. B. zu einer Methodenänderung) und `highlight: { from, to }` – der hervorgehobene Zeitraum, typischerweise der im Zeitfilter gewählte; das Portal hinterlegt ihn farbig, zeigt den Wert an seinem Ende und berechnet Veränderung wie Trend ab seinem Beginn. Gleiches `from` und `to` markiert einen einzelnen Zeitraum, z. B. das beim Kartogramm gewählte Jahr – das Diagramm endet dort. `points` sind Paare `{ period, value }`, sortiert vom ältesten Zeitraum an – `period` ist ein Jahr, Monat oder Tag wie bei `dm.timeline`. 2–100 Punkte. Senden Sie es immer, wenn ein Objekt Werte für mehrere Zeiträume hat (siehe [Entwicklung im Zeitverlauf und Trend](https://datenkarte.at/dokumentation/protokoll.md#vyvoj-v-case-a-trend)). - `dm.ttl` – Gültigkeit der Antwort (das Portal verwendet den kleineren Wert aus `cache.ttl` und `dm.ttl`). - `dm.total`, `dm.truncated` – wie viele Objekte es insgesamt gibt / ob die Antwort gekürzt ist. - `dm.notice` – kurzer Hinweis für die Nutzerinnen und Nutzer (wird bei der Ebene angezeigt). - `dm.next` – Cursor auf die nächste Seite (vom Portal noch nicht genutzt, reserviert). - `dm.timeline` – Anzahl der Objekte **im Ausschnitt** nach Zeiträumen über die gesamte vom Datensatz abgedeckte Zeit, unabhängig vom gewählten Zeitraum und von `limit` (zählen Sie sie mit einer Aggregationsabfrage, nicht aus den zurückgegebenen Objekten). Das Portal zeichnet daraus das Diagramm bei der Legende. `period` ist ein Jahr (`2023`), Monat (`2023-05`) oder Tag; das optionale `values` teilt die Anzahl nach den Werten der Eigenschaft aus `color.field` auf, und das Diagramm färbt sie wie die Legende. Max. 400 Zeiträume. - `dm.chart` – die zusammengefasste Entwicklung eines Werts für das gesamte Gebiet des Datensatzes oder den Ausschnitt (z. B. die Bevölkerung Österreichs), in derselben Form wie `feature.dm.chart`. Das Portal zeigt sie beim Zeitfilter als Liniendiagramm, wenn die Antwort kein `dm.timeline` enthält. ```json data { "type": "FeatureCollection", "features": [], "dm": { "timeline": [ { "period": "2024", "count": 2366, "values": { "Personenschaden": 701, "Sachschaden": 1665 } }, { "period": "2025", "count": 1894, "values": { "Personenschaden": 652, "Sachschaden": 1242 } } ] } } ``` Zusammengefasste Entwicklung für das gesamte Gebiet statt Objektanzahlen (gewählter Zeitraum 2022–2025): ```json data { "type": "FeatureCollection", "features": [], "dm": { "chart": { "label": "Bevölkerung Österreichs zu Jahresbeginn", "highlight": { "from": "2022", "to": "2025" }, "points": [ { "period": "2021", "value": 8932664 }, { "period": "2022", "value": 8978929 }, { "period": "2023", "value": 9104772 }, { "period": "2024", "value": 9158750 }, { "period": "2025", "value": 9197213 } ] } } } ``` Objekt mit Verlaufsdiagramm im Detail: ```json data { "type": "FeatureCollection", "features": [{ "type": "Feature", "id": "60101", "geometry": { "type": "Point", "coordinates": [15.4395, 47.0707] }, "properties": { "nazev": "Graz", "obyvatel": 303300 }, "dm": { "chart": { "label": "Einwohner zu Jahresbeginn", "points": [ { "period": "2023", "value": 298500 }, { "period": "2024", "value": 300800 }, { "period": "2025", "value": 303300 } ] } } }] } ``` - Eigenschaften mit dem Präfix `__dm_` sind für das Portal reserviert und werden aus der Antwort entfernt. ## Cache {#cache} - Das Portal hält Antworten für `min(cache.ttl, dm.ttl)`, standardmäßig 300 s. Manifeste 10 min. - Nach Ablauf bleibt der Eintrag noch 24 h als Reserve erhalten: Antwortet die Quelle nicht, zeigt das Portal die letzten Daten mit einem Hinweis. - `cache.store: false` – der Anbieter ist mit einer dauerhaften Speicherung der Daten in der Datenschicht des Portals nicht einverstanden (das kurzfristige Cachen der Antworten nach `ttl` gilt weiterhin). ## Validierung {#validace} Die Übereinstimmung mit dem Protokoll prüft der [Validator](https://datenkarte.at/dokumentation/api.md#validator) (`POST /api/validate`, Live-Test `GET /api/validate?manifestUrl=…` oder die MCP-Werkzeuge `validate_manifest` und `validate_data`). Er unterscheidet: - **Fehler** (`errors`) – Verstöße gegen dieses Dokument; ein Manifest mit Fehler nimmt das Portal nicht an, Daten mit Fehler zeigt es nicht an, - **Empfehlungen** (`warnings`) – die Daten funktionieren, lassen sich aber schlechter finden, darstellen oder kombinieren. Jeder Befund hat einen stabilen `code` ([Übersicht der Codes](https://datenkarte.at/dokumentation/api.md#kody-nalezu)), einen Pfad `path` und bei Empfehlungen einen Rat `hint`. Die Codes ändern sich zwischen Minor-Versionen nicht, neue können hinzukommen. ## Weiterentwicklung des Protokolls {#vyvoj-protokolu} - Neue optionale Felder und neue `presentation`- / `source`-Typen = neue Minor-Version (0.2…). - Bedeutungsänderung bestehender Felder = neue Major-Version; das Portal unterstützt übergangsweise beide. - Kandidaten für künftige Versionen: `symbol` (Icons), `extrusion` (3D), Zeitdimension (`time` bei Objekten + Parameter), `vector-tiles` / `pmtiles` / `ogc-features` als Quellen, Paginierung über `next`, Aggregation für kleine Zoomstufen. --- # API des Portals Datenkarte {#api-portalu-datovamapa} Die maschinelle Schnittstelle des Portals für Anwendungen und KI-Agenten: Datenkatalog, Daten aus allen Quellen in einheitlicher Form, Abfragen zu einem Ort (was sich an einem Punkt und in seiner Umgebung befindet, Zusammenfassung für eine Gemeinde), Validator und Registrierung für Datenanbieter sowie ein MCP-Server. Alles ist öffentlich, ohne Authentifizierung, mit CORS `*`. Die formale Beschreibung steht in der [OpenAPI](https://datenkarte.at/openapi.json). ## Überblick {#prehled} | Methode und Pfad | Zweck | |---|---| | `GET /api/catalog` | alle Anbieter und Datensätze (JSON) | | `GET /api/data/{provider}/{dataset}` | Daten eines Datensatzes als GeoJSON, über den Cache des Portals | | `GET /api/places?query=…` | Suche nach Adresse, Straße oder Gemeinde → Koordinaten | | `GET /api/nearby?point=…` | was sich an einem Punkt und in seiner Umgebung befindet, aus ausgewählten Datensätzen | | `GET /api/summary/{provider}/{dataset}` | Zusammenfassung eines Datensatzes für das gesamte Gebiet oder eine Gemeinde | | `GET /api/validate?manifestUrl=…` | Live-Test eines Anbieters | | `POST /api/validate` | Prüfung von Manifest oder Daten ohne Veröffentlichung | | `POST /api/registration` | Registrierung eines Anbieters (die Daten warten auf Freigabe) | | `POST /mcp` | MCP-Server (Streamable HTTP) | | `GET /llms.txt`, `/llms-full.txt` | Wegweiser und vollständige Dokumentation für Sprachmodelle | | `GET /index.md`, `/quellen.md`, `/dokumentation/{slug}.md` | Seiten des Portals in Markdown | | `GET /schema/0.1/manifest.json`, `/schema/0.1/data.json` | JSON Schema des Protokolls | | `GET /schema/0.1/provider-openapi.json` | OpenAPI-Vertrag, den der Anbieter implementiert | | `GET /beispiele/{datei}.json` | gültige Beispielmanifeste und -antworten | ## Katalog {#katalog} `GET /api/catalog` ```json { "protocol": "0.1", "generated": "2026-10-06T08:00:00.000Z", "providers": [{ "id": "cgs", "name": "Česká geologická služba", "status": "ok", "datasetCount": 2, "managedBy": "portal" }], "datasets": [ { "key": "cgs/radon", "providerId": "cgs", "providerName": "Česká geologická služba", "title": "Radonový index", "category": "risks", "categoryLabel": "Risiken und Einschränkungen", "keywords": ["radon"], "useCases": ["construction", "housing"], "source": { "type": "raster", "tiles": ["https://…"] }, "presentation": { "type": "raster", "opacity": 0.45 }, "attribution": "© Česká geologická služba", "links": { "data": null, "map": "/?d=cgs/radon" } } ] } ``` Der Katalog enthält nur freigegebene Daten. Datensätze von Anbietern, die sich selbst registriert haben und noch nicht freigegeben sind, sind darin nicht enthalten (siehe [Registrierung](#registrace)). Die Datensätze tragen alle Felder aus dem Manifest des Anbieters (`description`, `fields`, `params`, `coverage`…) außer der Quell-URL – GeoJSON-Daten werden über das Portal gelesen (`links.data`), Rasterkacheln direkt von der Quelle (`source.tiles`). Derselbe Inhalt, lesbar für Menschen wie Modelle: [quellen.md](https://datenkarte.at/quellen.md). ## Daten {#data} `GET /api/data/{provider}/{dataset}` | Parameter | Wann | Beschreibung | |---|---|---| | `bbox` | Datensätze mit `source.mode = "bbox"` (Pflicht) | `minLon,minLat,maxLon,maxLat` in WGS84; das Portal richtet ihn an den Kacheln aus | | `zoom` | Datensätze mit `source.mode = "bbox"` (Pflicht) | Zoomstufe 0–24 | | `cursor` | optional | Cursor aus `dm.next` | | `{param}` | nach den `params` des Datensatzes | Werte im Format des Protokolls (`a,b`, `von,bis`); nicht ausgefüllte erhalten `default` | Die Antwort ist eine GeoJSON `FeatureCollection`. Angaben aus `feature.dm` des Anbieters werden in `properties` mit dem Präfix `__dm_` verschoben (`__dm_title`, `__dm_description`, `__dm_url`, `__dm_color`, `__dm_chart`). Bei Datensätzen mit `color.type = "trend"` ergänzt das Portal `__dm_trend` (`roste`, `stagnuje`, `klesá`), berechnet aus `dm.chart`. Metadaten der Antwort: ```json { "dm": { "protocol": "0.1", "dataset": "aopk/pamatne-stromy", "generated": "…", "ttl": 86400, "total": 13, "truncated": false, "notice": null } } ``` Header `X-DM-Cache`: `hit` (aus dem Cache), `miss` (frisch von der Quelle), `stale` (Quelle nicht erreichbar, letzte bekannte Daten – siehe `dm.notice`). Fehler haben die Form `{ "error": "Meldung", "code": "kod" }`: `400` ungültige Anfrage, `404` unbekannter Datensatz, `502` Fehler der Quelle. **Datensätze nur zur Anzeige.** Bei einigen vom Portal verwalteten Datensätzen ist für die Quelle keine Lizenz zur Weiterverbreitung belegt. Das Portal zeichnet sie in seiner eigenen Karte, gibt die Daten aber nicht weiter: Im Katalog ist `links.data` leer und `links.source` enthält die Adresse des ursprünglichen Dienstes des Anbieters. Eine Anfrage außerhalb der Karte des Portals erhält `303` mit dem Header `Location` auf diesen Dienst und dem Body `{ "error": "…", "code": "display_only", "source": "…" }`. Ebenso antwortet das MCP-Werkzeug `fetch_data`. ## Ort und Umgebung {#misto-a-okoli} Abfragen für KI-Assistenten und Anwendungen, die Fragen zu einem konkreten Ort beantworten. Sie liefern für Menschen beschriebene Werte (Beschriftungen und Einheiten nach den `fields` des Datensatzes) ohne Geometrien, mit Quellenangabe und Link zur Karte. Anleitung für Nutzerinnen und Nutzer von Assistenten: [Daten für KI-Assistenten](https://datenkarte.at/dokumentation/ki-assistenten.md). ### Ortssuche {#hledani-mista} `GET /api/places?query=Hauptplatz 1, Graz` (optional `max`, standardmäßig 5, höchstens 10) Sucht im Adressregister nach Adressen, Straßen, Gemeinden, Ortschaften und weiteren Gebietseinheiten. Geben Sie nur die Adresse oder den Namen ein; Präzisierungen wie den Bezirk oder „bei Bad Ischl“ versteht der Dienst nicht. `municipality` ist die Gemeinde, in der der Ort liegt (`name`, `district`, `region` und die Gemeindekennziffer `code`) – für sie liefert die [Zusammenfassung](#souhrn) Daten für die ganze Gemeinde. Bei Orten außerhalb von Städten mit über 10 000 Einwohnern gibt es zusätzlich `near` mit der nächstgelegenen solchen Stadt und der Entfernung in km; anhand beider Angaben lassen sich gleichnamige Orte unterscheiden. Für Österreich ist noch kein Adressregister angeschlossen. Bis dahin antwortet die Ortssuche mit `geocoding_unavailable` (HTTP 501); Abfragen zur Umgebung funktionieren mit Koordinaten (`point`). Das Beispiel zeigt die Form der Antwort: ```json { "query": "Hauptplatz 1, Graz", "count": 1, "places": [{ "name": "Hauptplatz 1, 8010 Graz", "type": "Adresse", "point": [15.4382, 47.0709], "municipality": { "slug": "graz", "code": "60101", "name": "Graz", "district": "Graz", "region": "Steiermark" } }], "attribution": "© Quelle des Adressregisters" } ``` ### Was sich an einem Punkt und in der Umgebung befindet {#co-je-v-bode-a-okoli} `GET /api/nearby` | Parameter | Beschreibung | |---|---| | `point` | `lon,lat` in WGS84 | | `place` | statt `point`: Adresse oder Name, verwendet wird der erste Treffer der Ortssuche | | `radius` | Umkreis in Metern, standardmäßig 500, höchstens 20 000 | | `datasets` | Schlüssel `provider/dataset`, durch Kommas getrennt, höchstens 12 | | `purpose` | statt `datasets`: Datensätze mit diesem Zweck (`useCases`), die den Punkt abdecken | | `search` | statt `datasets`: Datensätze nach Übereinstimmung mit einem Text, z. B. `Risiken für ein Bauvorhaben` | | `max` | höchstens so viele Objekte je Datensatz, standardmäßig 5, höchstens 50 | | `{provider}/{dataset}.{param}` | Parameter eines Datensatzes, wie im [Link zur Karte](#odkaz-na-mapu) | Eines von `datasets`, `purpose`, `search` ist Pflicht. Die automatische Auswahl nimmt nur Datensätze, die zum Punkt Auskunft geben können: zuerst Risiken und Einschränkungen, Grundkarten zuletzt. Datensätze über dem Limit landen in `skipped`. - **GeoJSON-Datensätze:** Objekte bis zur Entfernung `radius`, vom nächstgelegenen an sortiert. `distance` ist in Metern, 0 = der Punkt liegt innerhalb einer Fläche (z. B. einer Gemeinde im Kartogramm). `count` ist die Anzahl der Objekte in der Umgebung. Datensätze, die nur bei starker Vergrößerung geladen werden, verkleinern die Umgebung (`radius`, `notice`). Bei vollständigen Datensätzen (`mode: full`), die in der Umgebung nichts haben, wird zumindest das nächstgelegene Objekt zurückgegeben (z. B. eine Messstation). - **Raster-Datensätze:** Das Portal fragt die Quelle direkt nach dem Punkt. Die Abfrage leitet es aus der Kachelvorlage ab: WMS `GetMap` → `GetFeatureInfo`, ArcGIS `MapServer/export` → `identify`, `ImageServer/exportImage` → `identify` mit der Klassentabelle des Rasters. Die Werte sind Attribute der Quelle (Feldnamen so, wie die Quelle sie liefert). Bei der Deutung von Codes helfen `description` und `legend`. | `status` | Bedeutung | |---|---| | `ok` | Abfrage erfolgreich; leere `hits` = in der Umgebung / am Punkt ist nichts (z. B. außerhalb eines Überflutungsgebiets) | | `unavailable` | der Datensatz liefert am Punkt keinen Wert (die Kacheln sind nur ein Bild) oder der Punkt liegt außerhalb der Abdeckung | | `error` | die Quelle ist ausgefallen (`error`, `code`) | ```json { "place": { "name": "Hauptplatz 1, 8010 Graz", "type": "Adresse", "point": [15.4382, 47.0709] }, "point": [15.4382, 47.0709], "radius": 500, "generated": "2026-10-06T16:00:00.000Z", "results": [ { "dataset": "cgs/radon", "title": "Radonový index", "provider": "Česká geologická služba", "attribution": "© Česká geologická služba", "status": "ok", "hits": [{ "title": "Radonový index", "distance": 0, "values": [{ "label": "radonovériziko", "value": "přechodný" }, { "label": "stupeňradonovéhoindexu", "value": "2" }] }] }, { "dataset": "npu/kulturni-pamatky", "title": "Kulturní památky", "provider": "Národní památkový ústav", "attribution": "Národní památkový ústav", "license": "CC BY-SA 4.0", "status": "ok", "count": 27, "radius": 500, "hits": [ { "title": "továrna Breitfeld-Daněk", "distance": 91, "values": [{ "label": "Rejstříkové číslo ÚSKP", "value": "105958" }, { "label": "Stav ochrany", "value": "památkově chráněno" }], "url": "https://pamatkovykatalog.cz/x-14624751" } ] } ], "map": "https://datenkarte.at/?d=cgs/radon&d=npu/kulturni-pamatky#15/47.0709/15.4382" } ``` ### Zusammenfassung {#souhrn} `GET /api/summary/{provider}/{dataset}?municipality=Graz` (die übrigen Query-Parameter sind Parameter des Datensatzes) Zusammenfassung eines GeoJSON-Datensatzes für das gesamte Gebiet oder, mit `municipality`, nur für eine Gemeinde – jede beliebige Gemeinde Österreichs: `count`, `categories` (Anzahlen nach Farbkategorie), `rankings` (höchste und niedrigste Werte) und beim Kartogramm `own` – die Werte der Fläche, in der die Gemeinde liegt. Es sind dieselben Zahlen, die die Seite des Datensatzes zeigt. Datensätze, die nur bei starker Vergrößerung geladen werden, haben eine Zusammenfassung nur für eine Gemeinde. Raster-Datensätze haben keine Zusammenfassung. `municipality` ist der Name („Graz“), der Name mit Bezirk oder Bundesland („Krumbach (Bezirk Bregenz)“), die Gemeindekennziffer („60101“, die [Ortssuche](#hledani-mista) liefert sie in `municipality.code`) oder die Adresse ihrer Übersichtsseite („vorarlberg/krumbach“). Ein bloßer Name, den mehrere Gemeinden tragen, endet mit dem Fehler `ambiguous_place` und einer Liste dieser Gemeinden mit Bezirk und Code. ## Validator {#validator} Ein Werkzeug für Datenanbieter und ihre KI-Agenten. Liefert immer HTTP 200 und einen Bericht: ```json { "valid": false, "summary": "Das Manifest ist nicht gültig: 1 Fehler, 2 Empfehlungen.", "errors": [{ "path": "datasets[0].source.tiles[0]", "code": "raster_without_template", "message": "Die Kachelvorlage enthält weder {z}/{x}/{y} noch {bbox-epsg-3857}." }], "warnings": [{ "path": "datasets[0].keywords", "code": "missing_keywords", "message": "Der Datensatz hat keine Schlüsselwörter.", "hint": "Ergänzen Sie 5–15 Wörter…" }] } ``` - `POST /api/validate` mit dem Body: - Manifest (Objekt mit `datasets`) oder `{ "manifest": … }` – statische Prüfung, - GeoJSON `FeatureCollection` oder `{ "data": …, "dataset": … }` – Prüfung der Daten; mit `dataset` (Datensatz-Objekt aus dem Manifest) auch die Übereinstimmung mit dem Manifest, - `{ "manifestUrl": "https://…" }` – Live-Test. - `GET /api/validate?manifestUrl=https://…` – Live-Test: lädt das Manifest, prüft es und sendet für jeden Datensatz eine Testanfrage wie das Portal (bei `bbox` auf die Mitte von `coverage.bbox`, Zoom 12 oder `coverage.minZoom`; bei Rastern eine Kachel). Der Bericht enthält zusätzlich `provider` und `datasets[]` mit `request`, `durationMs`, `featureCount`, `errors`, `warnings`. ## Registrierung {#registrace} `POST /api/registration` mit dem Body `{ "manifestUrl": "https://…" }`. Das Portal prüft das Manifest mit einem Live-Test (wie der Validator). Besteht es, wird der Anbieter unter den ungeprüften Daten registriert: - Die Daten sind über `/api/data/…` und auf den Seiten der Datensätze `/karte/{provider}/{dataset}` verfügbar. Die Seite zeigt zuerst eine Warnung, dass die Daten von Dritten hochgeladen und vom Betreiber nicht freigegeben wurden. Die Daten werden erst nach Bestätigung in die Karte geladen. Die Seite hat `noindex`. - In den Katalog, die Suche, `llms.txt`, das MCP-Werkzeug `catalog` und auf die Gemeindeseiten gelangen die Daten erst nach Freigabe durch den Betreiber. - Die Freigabe gilt für den Fingerabdruck (SHA-256) des Manifestinhalts. Nach einer Änderung des Manifests ist der Anbieter wieder ungeprüft, bis ihn der Betreiber erneut freigibt. - Übersicht der ungeprüften Anbieter: [/ungepruefte-daten](https://datenkarte.at/ungepruefte-daten). ```json { "registered": true, "status": "pending_review", "message": "Registriert. …", "provider": { "id": "gemeinde-beispiel", "name": "Gemeinde Beispiel" }, "links": { "review": "/ungepruefte-daten#gemeinde-beispiel", "datasets": ["/karte/gemeinde-beispiel/parkbaenke"] }, "check": { "summary": "Der Anbieter ist ohne Einschränkungen gültig.", "warnings": [] } } ``` | HTTP | `code` | Bedeutung | |---|---|---| | 201 | – | registriert, wartet auf Freigabe | | 200 | – | bereits registriert; `status` ist `pending_review` oder `approved` | | 400 | `invalid_input`, `invalid_url` | `manifestUrl` fehlt oder ist ungültig | | 403 | `rejected` | der Betreiber hat die Registrierung abgelehnt | | 409 | `id_taken`, `url_registered` | `provider.id` existiert im Portal bereits / die URL ist unter einer anderen id registriert | | 422 | `manifest_rejected` | der Live-Test ist fehlgeschlagen; der Bericht steht in `check` | | 429 | `too_many_requests`, `queue_full` | mehr als 5 Versuche pro Minute von einer Adresse / über 100 Anbieter warten auf Freigabe | | 503 | `registration_unavailable` | die Registrierung funktioniert derzeit nicht | ## MCP-Server {#mcp-server} Endpoint `https://datenkarte.at/mcp`, Transport Streamable HTTP (zustandslos, Antworten in JSON), ohne Authentifizierung. | Werkzeug | Eingabe | Ausgabe | |---|---|---| | `documentation` | `topic`: `ai-agents`, `ai-assistants`, `protocol`, `providers`, `api`, `about` | Markdown des Dokuments | | `schema` | `type`: `manifest`, `data`, `provider-openapi` | JSON Schema / OpenAPI | | `example` | `name`: `manifest-minimal`, `manifest-complete`, `data-points`, `data-polygons` | gültiges Beispiel-JSON | | `validate_manifest` | `manifest` (Objekt) oder `manifestUrl` (Live-Test) | Bericht des Validators | | `validate_data` | `data`, optional `dataset` | Bericht des Validators | | `register_provider` | `manifestUrl` | Ergebnis der [Registrierung](#registrace) | | `catalog` | optional `search` (Freitext), `point` (`[lon, lat]`) | Datensätze im Portal, nach Übereinstimmung sortiert; `pointQuery` = der Datensatz beantwortet `nearby` | | `find_place` | `query`, `maxResults` | wie die [Ortssuche](#hledani-mista) | | `nearby` | `point` oder `place`; `datasets`, `purpose` oder `search`; `radius`, `maxFeatures`, `params` (`{ "provider/dataset": { "param": "wert" } }`) | wie [was sich an einem Punkt und in der Umgebung befindet](#co-je-v-bode-a-okoli) | | `summary` | `dataset`, optional `municipality`, `params` | wie die [Zusammenfassung](#souhrn) | | `fetch_data` | `dataset` (`provider/dataset`), `bbox` oder `municipality`, `zoom`, `params`, `maxFeatures` | GeoJSON (auf `maxFeatures` gekürzt) | Verbindung: ```bash claude mcp add --transport http datenkarte https://datenkarte.at/mcp ``` ```json { "mcpServers": { "datenkarte": { "type": "http", "url": "https://datenkarte.at/mcp" } } } ``` ## Link zur Karte {#odkaz-na-mapu} `https://datenkarte.at/?d={provider}/{dataset}&d=…&{provider}/{dataset}.{param}={wert}#{zoom}/{lat}/{lon}` Jeder Datensatz hat außerdem eine eigene Seite mit Karte und Beschreibung: `https://datenkarte.at/karte/{provider}/{dataset}`, bundesweite GeoJSON-Datensätze auch für Gemeinden mit über 10 000 Einwohnern: `https://datenkarte.at/karte/{provider}/{dataset}/{gemeinde}` (z. B. `/karte/{provider}/{dataset}/graz`). Der Link zur Seite des Datensatzes steht im Katalog in `links.map`. Auf der Seite eines Datensatzes (auch einer zusammengestellten Karte `/karten/{slug}`) wird in `?d=…` nur die Abweichung von der Standardauswahl geschrieben: Ohne `d` gelten die Datensätze der Seite, `d` zählt die gesamte Auswahl auf (`?d=` = nichts ist eingeschaltet), und ein Parameter wird nur angegeben, wenn er vom Standardwert abweicht. Beispiel – Verkehrsunfälle in Brünn zusammengefasst für die Jahre 2019–2023: [/?d=brno/dopravni-nehody&brno/dopravni-nehody.obdobi=2019,2023#13/49.195/16.608](https://datenkarte.at/?d=brno/dopravni-nehody&brno/dopravni-nehody.obdobi=2019,2023#13/49.195/16.608) ## Befundcodes {#kody-nalezu} Stabile Codes für Fehler (`errors`) und Empfehlungen (`warnings`) von Validator und Proxy. ### Manifest {#manifest} | Code | Stufe | Bedeutung | |---|---|---| | `schema_*` | Fehler | Verstoß gegen das JSON Schema (`schema_invalid_type`, `schema_too_small`, `schema_invalid_format`, `schema_invalid_value`, `schema_custom`…), `path` zeigt die Stelle | | `unsupported_version` | Fehler | andere Hauptversion des Protokolls | | `raster_without_template` | Fehler | Kachel-URL weder mit `{z}/{x}/{y}` noch mit `{bbox-epsg-3857}` | | `geojson_with_raster_presentation` | Fehler | GeoJSON-Quelle mit `presentation.type: "raster"` | | `param_without_options` | Fehler | `enum` / `multi-enum` ohne `options` | | `invalid_default` | Fehler | `default` des Parameters passt nicht zum Typ oder zu den Optionen | | `time_param_missing` | Fehler | `temporal.param` verweist auf einen Parameter, der nicht in `params` steht | | `time_param_type` | Fehler | der Zeitparameter ist weder vom Typ `range` noch `date-range` | | `time_param_no_range` | Empfehlung | der Zeitparameter vom Typ `range` hat kein `min` und `max` | | `unknown_presentation_type` | Empfehlung | das Portal kennt den Typ nicht und zeichnet `auto` | | `raster_without_raster_presentation` | Empfehlung | ein Raster wird immer als `raster` gezeichnet | | `missing_description`, `missing_keywords`, `missing_use_cases` | Empfehlung | Menschen wie Assistent finden den Datensatz schlechter | | `missing_category`, `unknown_category` | Empfehlung | der Datensatz landet unter „Sonstiges“ | | `missing_field` | Empfehlung | das Objektdetail zeigt rohe Eigenschaftsnamen | | `field_not_described`, `field_not_number` | Empfehlung | die Darstellung verweist auf eine Eigenschaft außerhalb von `fields` / mit nicht numerischem Typ | | `bbox_unbounded` | Empfehlung | `bbox`-Datensatz ohne `coverage.minZoom` und `maxFeatures` | | `missing_coverage` | Empfehlung | `bbox`-Datensatz ohne `coverage.bbox` | | `missing_license`, `missing_website` | Empfehlung | Lizenz / Website des Anbieters fehlt | ### Daten {#data} | Code | Stufe | Bedeutung | |---|---|---| | `coordinates_out_of_range` | Fehler | Koordinaten außerhalb von WGS84 (typischerweise nicht umgerechnetes MGI / Austria Lambert, EPSG:31287, oder Gauß-Krüger, EPSG:31257–31259) | | `unclosed_polygon` | Fehler | der Ring eines Polygons ist nicht geschlossen | | `too_many_features` | Empfehlung | mehr Objekte als `limit` / 5 000 | | `missing_time_series` | Empfehlung | der Datensatz hat `temporal.param`, die Antwort sendet weder `dm.timeline` noch `dm.chart` | | `missing_trend_chart` | Empfehlung | der Datensatz färbt nach einem Zahlenwert und wählt den Zeitraum per Parameter, die Objekte senden jedoch kein `dm.chart` | | `trend_without_chart` | Empfehlung | der Datensatz färbt nach Trend, manche Objekte haben kein `dm.chart` (sie bleiben grau) | | `swapped_coordinates` | Empfehlung | Koordinaten vermutlich in der Reihenfolge `[lat, lon]` | | `outside_coverage` | Empfehlung | die meisten Objekte liegen außerhalb von `coverage.bbox` | | `geometry_presentation_mismatch` | Empfehlung | z. B. Flächen bei `circle` | | `field_missing_in_data`, `missing_presentation_property` | Empfehlung | eine Eigenschaft aus dem Manifest fehlt in den Daten | | `missing_id` | Empfehlung | Objekte ohne `id` | | `empty_geometry` | Empfehlung | Objekte mit `geometry: null` werden übersprungen | ### Live-Test und Proxy {#zivy-test-a-proxy} | Code | Bedeutung | |---|---| | `invalid_url`, `https_required` | ungültige URL / die Quelle läuft nicht über HTTPS | | `source_unreachable`, `timeout`, `http_error` | die Quelle antwortet nicht, hat die 10 s überschritten, hat einen HTTP-Fehler geliefert | | `invalid_json`, `empty_body`, `response_too_large` | die Antwort ist kein JSON / ist leer / ist größer als 15 MB | | `invalid_manifest`, `id_mismatch` | das Manifest eines registrierten Anbieters ist durchgefallen / hat eine andere `provider.id` | | `registration_unavailable`, `too_many_requests`, `queue_full`, `manifest_rejected`, `id_taken`, `url_registered`, `rejected` | Fehler der [Registrierung](#registrace) | | `data_schema_mismatch` | die Daten der Quelle entsprechen nicht dem Schema | | `empty_response`, `slow_response` | die Testanfrage lieferte 0 Objekte / dauerte über 3 s | | `tile_http_error`, `tile_not_image`, `tile_unreachable` | die Test-Rasterkachel ist fehlgeschlagen | | `source_error` | anderer Fehler bei der Kommunikation mit der Quelle (Details in `message`) | | `invalid_query`, `unknown_dataset`, `raster_dataset`, `invalid_input`, `internal_error` | Fehler einer Anfrage an das Portal | | `display_only` | das Portal zeigt den Datensatz nur an, die Daten liefert der ursprüngliche Dienst (`source`) | | `missing_place`, `unknown_place` | Ortsabfrage ohne Punkt und ohne Ort / der Ort (Adresse, Gemeinde) wurde nicht gefunden | | `geocoding_unavailable` | die Suche nach Adressen und Orten gibt es im Portal für dieses Land noch nicht (HTTP 501) | | `ambiguous_place` | den Gemeindenamen tragen mehrere Gemeinden – die Meldung zählt sie mit Bezirk und Code auf | | `missing_dataset_selection` | Umgebungsabfrage ohne `datasets`, `purpose` und `search` | | `summary_requires_place` | der Datensatz lässt sich nur vergrößert laden und hat keine Zusammenfassung für das gesamte Gebiet – geben Sie eine Gemeinde an | | `unknown_schema`, `unknown_example` | nicht existierendes Schema / Beispiel (die Antwort enthält die Liste `available`) | --- # Datenkarte – Vision {#datovamapa-vize} Datum: 2026-10-06 (ersetzt den ursprünglichen Kontext von 2026-08, dieser liegt in `docs/archiv/`) ## Was ist die Datenkarte {#co-je-datovamapa} Die Datenkarte ist eine **offene Schnittstelle zur Visualisierung von Daten auf der Karte**. Sie definiert ein offenes Schema (Protokoll), über das jede und jeder beliebige Daten auf der Karte darstellen kann – Punkte, Linien, Flächen, Dichten, Rasterebenen. Das Prinzip: 1. Der Datenanbieter veröffentlicht ein **Manifest** (Beschreibung seiner selbst und seiner Datensätze) und einen **Datenendpunkt** nach dem Protokoll der Datenkarte. 2. Der Anbieter registriert das Manifest; nach der Freigabe durch den Betreiber erscheinen die Datensätze im Katalog. 3. Schaltet eine Nutzerin oder ein Nutzer einen Datensatz ein, fragt das Portal die Quelle ab (für den aktuellen Kartenausschnitt und die gesetzten Filter), prüft die Antwort, legt sie im Cache ab und stellt sie gemäß der Beschreibung im Manifest dar. Das Portal besitzt die Daten nicht; es vermittelt sie und nennt immer die Quelle. Betreiber des Portals ist [vrealmatic.com](https://vrealmatic.com/web). ## Nutzen {#prinos} **Für Nutzerinnen und Nutzer:** Auf einer einzigen Karte lassen sich Daten aus beliebigen Quellen kombinieren – ohne zwischen Dutzenden Kartenportalen zu wechseln. **Für Datenanbieter:** - Sie müssen sich weder um die Karte noch um Stile oder einen Kartenserver kümmern – ein JSON-Endpunkt genügt, - sie sind Teil eines offenen Datenportals, ihre Daten treffen auf die Daten anderer, - sie werden sichtbar als Quelle genannt (bei den Daten auf der Karte, im Objektdetail und in der Quellenübersicht). ## Daten bereiten KI-Agenten vor {#data-pripravuji-ai-agenti} Wir gehen davon aus, dass die Daten bei den Anbietern vor allem KI-Agenten vorbereiten (im Auftrag des Menschen, dem die Daten gehören). Deshalb ist das gesamte Portal „KI-freundlich“ aufgebaut: - **Alles liegt in Markdown vor.** Jede Seite der Dokumentation hat eine Markdown-Version (`/dokumentation/{slug}.md`), die Startseite `/index.md`, der Katalog `/quellen.md`; dazu der Wegweiser `/llms.txt` und die gesamte Dokumentation in einer Datei `/llms-full.txt`. Quelle der Wahrheit sind die Dateien in `docs/`, das HTML wird daraus erzeugt. - **Anleitung für Agenten** mit Vorgehen, Entscheidungstabellen, Codevorlagen, Regeln (personenbezogene Daten, Lizenzen) und Kriterien für eine fertige Arbeit. - **Maschinenlesbare Schemas**, aus einer einzigen Quelle erzeugt: JSON Schema für Manifest und Daten, OpenAPI-Vertrag des Anbieters (daraus erzeugt der Agent den Server) und OpenAPI des Portals. - **Validator mit Rückmeldung**: stabile Fundcodes, genaue Pfade und Hinweise, wie der Fehler zu beheben ist; Live-Test des gesamten Anbieters. Der Agent iteriert, bis `valid: true` gilt. - **MCP-Server** `/mcp`: Dokumentation, Schemas, Beispiele, Validierung, Katalog und Daten als Werkzeuge. - **Geprüfte Beispiele**: Jedes Beispiel in der Dokumentation durchläuft den Validator (`npm run check:docs`), damit der Agent keinen Fehler kopiert. - **Felder für die Auffindbarkeit**: `keywords`, `useCases`, `description`, `fields` – danach finden Menschen wie auch der Assistent des Portals die Daten. Die Daten im Portal lesen auch KI-Assistenten von Privatpersonen und Unternehmen. Über den MCP-Server oder die HTTP-API finden sie einen Ort (Adressverzeichnis), fragen ausgewählte Datensätze, was sich an einem Punkt und in seiner Umgebung befindet (auch Rasterkarten wie Hochwasser, Radon oder Lärm), und erhalten eine Zusammenfassung für eine Gemeinde. Die Daten interpretieren sie selbst und nennen die Quelle. Anleitung: [Daten für KI-Assistenten](https://datenkarte.at/dokumentation/ki-assistenten.md). ## Prinzipien {#principy} - **Offenes Protokoll.** Das Schema ist öffentlich (`/schema/0.1/manifest.json`, `/schema/0.1/data.json`) und basiert auf GeoJSON (RFC 7946). Fast alles ist optional, verpflichtend ist nur ein kleines Minimum. - **Absicht statt Bibliothek.** Der Anbieter beschreibt, *was* er zeigen will (Punkte nach Kategorie, Kartogramm nach Wert …), nicht die konkrete Einstellung einer Kartenbibliothek. Das Portal kann die Darstellung ändern, ohne dass der Anbieter betroffen ist. - **Vorwärtskompatibilität.** Unbekannte Felder werden ignoriert, ein unbekannter Visualisierungstyp wird im Standardstil dargestellt. So kann das Protokoll wachsen, ohne bestehende Quellen zu brechen. - **Schlichte Startseite.** Nur Karte und Logo. Beim Überfahren mit der Maus bzw. per Klick öffnet sich die Datenauswahl. Keine weiteren Panels. - **Einstiegsseiten für konkrete Daten.** Wer eine bestimmte Kennzahl sucht, kommt aus der Suchmaschine auf die Seite eines Datensatzes (`/karte/{provider}/{dataset}`), eines Datensatzes für eine Gemeinde oder einer zusammengestellten Karte (`/karten/{slug}`): dieselbe Karte mit voreingestellten Daten und einer Beschreibung samt Zusammenfassung der Daten. Weitere Ebenen lassen sich wie auf der Startseite hinzufügen. - **Sicherheit.** Daten der Anbieter werden nie als HTML eingefügt, der Proxy fragt nur registrierte Quellen ab, mit Zeit- und Größenlimits. ## Startseite {#hlavni-stranka} - Vollflächige Karte und Logo links oben. Die Karte öffnet sich über ganz Österreich. - **Einstieg.** Wer ohne Auswahl und ohne Link auf einen Ort kommt, wird beim Laden der Karte im Browser nach dem Standort gefragt, in seine Umgebung versetzt, und neben der Karte öffnet sich das Einstiegsfenster „Ihre Umgebung in Daten“ – ein Schnellstart: der Assistent (in Vorbereitung) mit Schnellauswahlen, also zusammengestellten Karten mit einem Klick, und Links zu gerade aktuellen Daten. Einzelne Ebenen werden im Katalog („Gesamter Katalog“) eingeschaltet. Wer den Standort nicht freigibt oder sich außerhalb Österreichs befindet, erhält den Einstieg für ganz Österreich. Ein Link mit Auswahl überspringt den Einstieg; dieser kehrt aber zurück, sobald auf der Karte nichts angezeigt wird. - Den genauen Standort zeigt man mit der Schaltfläche „Meine Umgebung“ rechts oben neben der Kartensteuerung an – der Browser fragt erst nach dem Klick; wer den Standort schon früher freigegeben hat, sieht die Karte gleich in seiner Umgebung (und der Einstieg verwendet diesen Standort). - Das Überfahren des Logos mit der Maus (oder Klick / Tippen) öffnet ein großes Auswahlfenster (über 80 % der Breite): links der **Katalog** als Karten nach Kategorien mit Suche, rechts **Auf der Karte** – eingeschaltete Ebenen mit Status, Legende und Filtern. Oben ist eine Vorschau des künftigen Assistenten – vorerst inaktiv. Ein Klick oder die Arbeit im Fenster heftet es an; geschlossen wird es mit dem Kreuz, der Taste Esc oder einem Klick daneben. - Die Auswahl wird in der URL gespeichert, der Link lässt sich teilen. ### Eingabe in natürlicher Sprache (Zukunft) {#zadani-v-prirozenem-jazyce-budoucnost} Ziel: Die Nutzerin schreibt etwa *„Ich möchte in der Gemeinde Neustift bauen, zeig mir alle relevanten Daten, die du für meinen Zweck hast“*, und das Portal 1. versteht den Ort (Geokodierung von Gemeinde / Adresse / Grundstück) und verschiebt die Karte, 2. versteht den Zweck (Bauen) und wählt passende Datensätze nach `useCases`, `keywords` und den Beschreibungen in den Manifesten, 3. setzt gegebenenfalls Filter und fasst zusammen, was es in den Daten sieht. Im Fenster gibt es vorerst nur eine inaktive Vorschau. Die Schritte 1–3 beherrscht ein fremder KI-Assistent aber bereits über MCP: `find_place` (Geokodierung über das Adressverzeichnis), `nearby` (Auswahl der Datensätze nach Zweck oder Text und Abfrage an einem Punkt) und `summary`. Die Auswahl der Datensätze nach Schlüsselwörtern und Zwecken (`src/lib/search.ts`) nutzen auch die Katalogsuche und das MCP-Werkzeug `catalog`. Deshalb haben Manifeste die Felder `keywords` und `useCases` – sie bereiten die Daten für den Assistenten vor. ## Cache und eigene Datenschicht {#cache-a-vlastni-datova-vrstva} Am Anfang sind die externen APIs der Anbieter die Datenquelle. Das Portal hält die Antworten im Cache (gemäß `cache.ttl`), damit die Quellen nicht belastet werden und die Karte schnell ist; fällt eine Quelle aus, kann es kurzzeitig die zuletzt bekannten Daten zeigen. In den Bedingungen für Anbieter behalten wir uns vor, die Daten im Interesse von **Beschleunigung, Entlastung der Quellen, Nachhaltigkeit, besserer Kombinierbarkeit, dem Verknüpfen von Zusammenhängen und der Arbeit mit großen Datenmengen** in einem eigenen Cache / einer eigenen Datenschicht zu halten. Der Anbieter kann das beim Datensatz abschalten (`cache.store: false`). ## Bewertungen von Autorinnen und Autoren (nächste Version) {#autorska-hodnoceni-dalsi-verze} Entwurf, noch nicht umgesetzt. Eine Ebene für Menschen mit eigener Meinung und eigenem Publikum – Bloggerinnen, Rezensenten, Vereine –, die Bewertungen von Orten zeigen wollen: „Kaffeehäuser laut …“, „Radwege laut …“, „Spielplätze laut …“. Jeder Ort hat eine Bewertung, ein kurzes Urteil und einen Link auf den Artikel. Heute geht das nur allgemein: Die Autorin stellt ein eigenes Manifest und ein GeoJSON mit einem Zahlenfeld bereit und färbt die Punkte nach dem Wert ein. Das Portal weiß aber nicht, dass es sich um eine Bewertung handelt, und die Autorin muss die Daten selbst hosten. Entwurf: - **Wir hosten.** Die Autorin lädt CSV oder GeoJSON hoch oder klickt die Punkte auf der Karte an. Die Daten speichert das Portal (D1 / R2), eine eigene Website ist nicht nötig. - **Bewertung als Begriff des Protokolls.** Visualisierungstyp `rating` und die Objektfelder `rating`, `ratingMax` (Standard 5), `review` (kurzes Urteil), `url` (Artikel) und `visited` (Datum des Besuchs). Das Portal zeigt Sterne im Detail, bietet einen Filter „ab N Sternen“ an und leitet die Legende selbst ab. Den Typ kann auch ein Anbieter mit eigenem Manifest verwenden. - **Die Autorin ist sichtbar.** Eine Bewertung ist die Meinung eines konkreten Menschen, keine Angabe des Portals. Name und Link der Autorin stehen bei der Ebene und im Detail jedes Ortes. - **Freigabe.** Die Ebene ist nicht im Katalog, bis der Betreiber sie freigibt – genauso wie bei der [Selbstregistrierung](https://datenkarte.at/dokumentation/fuer-datenanbieter.md#5-registrace). Offene Fragen: - **Konten.** Das Portal hat heute keine Benutzerkonten. Das Hochladen braucht eine Anmeldung (z. B. einen Link per E-Mail) und Schutz vor Missbrauch. - **Freigabe von Änderungen.** Die Autorin wird die Daten laufend ergänzen. Einmal die Autorin freigeben oder jede Änderung? - **Freie Punkte oder bestehende Orte?** Die Bindung an einen bestehenden Ort (z. B. einen Betrieb aus OpenStreetMap) erlaubt es, mehrere Autorinnen und Autoren bei einem Ort zu vergleichen, ist aber deutlich aufwendiger. - **Zusammenfassungen.** Ein Durchschnitt mehrerer Autorinnen und Autoren nähert sich Bewertungsplattformen an und öffnet das Risiko der Manipulation (erfundene Autoren). Zu Beginn nur Ebenen nebeneinander. - **Recht.** Eine negative Bewertung eines namentlich genannten Betriebs kann mit dem Schutz vor Kreditschädigung (§ 1330 ABGB) kollidieren. Nötig sind Bedingungen „die Autorin bzw. der Autor haftet für die eigenen Inhalte“, eine Meldefunktion für Orte und rasches Entfernen. Bewertet werden Orte, keine Privatpersonen. ## Plan {#plan} 1. **v0.1 (fertig):** Protokoll (Manifest + GeoJSON-Antwort), Katalog, Proxy mit Cache, Visualisierungen circle / heatmap / line / fill / raster / auto, Filter, Objektdetail, Quellenübersicht, Beispielanbieter; Dokumentation in Markdown, llms.txt, Validator, MCP-Server, OpenAPI. 2. **Registrierung von Anbietern:** Die Selbstregistrierung mit Freigabe ist fertig (Formular, API, MCP); offen ist das Monitoring der Verfügbarkeit der Quellen. 3. **Assistent:** für fremde KI-Assistenten fertig (MCP und API: Geokodierung über das Adressverzeichnis, Abfrage an Punkt und Umgebung einschließlich Rasterdatensätzen, Zusammenfassung für eine Gemeinde); offen ist ein eigener Assistent im Auswahlfenster (LLM über dem Katalog). 4. **Weitere Visualisierungen und Quellen:** Icons/Symbole, 3D-Extrusion von Flächen, Zeitachse, Ströme, Vektorkacheln (MVT/PMTiles), OGC API Features und WFS als Quelltyp. 5. **Eigene Datenschicht:** dauerhafte Speicherung der Daten (Cloudflare D1/R2, gegebenenfalls PostGIS), räumliche Abfragen über mehrere Quellen, vorberechnete Aggregationen für große Datenmengen. 6. **Bewertungen von Autorinnen und Autoren:** Bewertungsebenen von Bloggerinnen und Rezensenten, vom Portal gehostet, Visualisierungstyp `rating` (siehe [Entwurf](https://datenkarte.at/dokumentation/ueber-das-projekt.md#autorska-hodnoceni-dalsi-verze)). --- # Beispiele ## manifest-minimal.json Das kleinste sinnvolle Manifest: eine statische GeoJSON-Datei, Modus full. ```json { "$schema": "https://datenkarte.at/schema/0.1/manifest.json", "protocol": "0.1", "provider": { "id": "obec-priklad", "name": "Obec Příklad", "homepage": "https://www.obec-priklad.cz/" }, "license": { "name": "CC BY 4.0", "url": "https://creativecommons.org/licenses/by/4.0/", "attribution": "© Obec Příklad" }, "datasets": [ { "id": "lavicky", "title": "Lavičky v obci", "description": "Veřejné lavičky udržované obcí.", "category": "society", "keywords": [ "lavička", "posezení", "odpočinek", "park", "mobiliář" ], "useCases": [ "tourism", "public-administration" ], "source": { "type": "geojson", "url": "lavicky.geojson", "mode": "full" }, "presentation": { "type": "circle", "color": "#0d9488" }, "fields": [ { "key": "umisteni", "label": "Umístění", "primary": true } ] } ] } ``` ## manifest-complete.json Manifest mit allen wichtigen Möglichkeiten: bbox, Filter, Farben nach Werten, Gruppierung, Choroplethenkarte, WMS. ```json { "$schema": "https://datenkarte.at/schema/0.1/manifest.json", "protocol": "0.1", "provider": { "id": "mesto-priklad", "name": "Město Příklad", "description": "Otevřená data statutárního města Příklad.", "homepage": "https://www.mesto-priklad.cz/", "contact": { "email": "opendata@mesto-priklad.cz" } }, "license": { "name": "CC BY 4.0", "url": "https://creativecommons.org/licenses/by/4.0/", "attribution": "© Město Příklad" }, "datasets": [ { "id": "kontejnery", "title": "Kontejnery na tříděný odpad", "description": "Stanoviště kontejnerů na papír, plast a sklo včetně data posledního vývozu.", "category": "infrastructure", "tags": [ "odpady" ], "keywords": [ "odpad", "kontejner", "třídění", "tříděný odpad", "popelnice", "papír", "plast", "sklo", "recyklace" ], "useCases": [ "housing", "public-administration" ], "coverage": { "bbox": [ 16.43, 49.1, 16.73, 49.3 ], "area": "Město Příklad", "minZoom": 11 }, "temporal": { "updated": "2026-10-06", "frequency": "denně" }, "source": { "type": "geojson", "url": "https://data.mesto-priklad.cz/datovamapa/kontejnery", "mode": "bbox", "maxFeatures": 5000 }, "presentation": { "type": "circle", "color": { "field": "druh", "type": "categorical", "values": { "papír": "#2563eb", "plast": "#eab308", "sklo": "#16a34a" }, "default": "#64748b" }, "radius": { "field": "objem", "type": "interpolate", "stops": [ [ 500, 4 ], [ 3000, 9 ] ] }, "strokeColor": "#ffffff", "strokeWidth": 1.5, "cluster": { "radius": 40, "maxZoom": 15 }, "legend": [ { "label": "Papír", "color": "#2563eb" }, { "label": "Plast", "color": "#eab308" }, { "label": "Sklo", "color": "#16a34a" } ] }, "fields": [ { "key": "druh", "label": "Druh odpadu", "type": "string", "primary": true }, { "key": "objem", "label": "Objem", "type": "integer", "unit": "l" }, { "key": "vyvoz", "label": "Poslední vývoz", "type": "date" } ], "params": [ { "key": "druh", "label": "Druh odpadu", "type": "multi-enum", "options": [ { "value": "papír", "label": "Papír" }, { "value": "plast", "label": "Plast" }, { "value": "sklo", "label": "Sklo" } ] } ], "cache": { "ttl": 3600, "store": true } }, { "id": "hluk", "title": "Hluková mapa", "description": "Strategická hluková mapa – denní hladina hluku ze silniční dopravy.", "category": "risks", "keywords": [ "hluk", "hlučnost", "doprava", "decibely", "Ldvn" ], "useCases": [ "housing", "construction", "land-purchase" ], "coverage": { "bbox": [ 16.43, 49.1, 16.73, 49.3 ], "area": "Město Příklad", "minZoom": 10 }, "source": { "type": "geojson", "url": "https://data.mesto-priklad.cz/datovamapa/hluk", "mode": "bbox" }, "presentation": { "type": "fill", "color": { "field": "db", "type": "step", "default": "#fef9c3", "stops": [ [ 55, "#fde047" ], [ 60, "#fb923c" ], [ 65, "#ef4444" ], [ 70, "#7f1d1d" ] ] }, "opacity": 0.55, "outlineWidth": 0 }, "fields": [ { "key": "db", "label": "Hladina hluku", "type": "number", "unit": "dB", "decimals": 0 } ], "cache": { "ttl": 86400 } }, { "id": "uzemni-plan", "title": "Územní plán", "description": "Hlavní výkres územního plánu jako rastrová vrstva z WMS.", "category": "territory", "keywords": [ "územní plán", "ÚP", "funkční využití", "zastavitelné plochy" ], "useCases": [ "construction", "land-purchase", "investment" ], "coverage": { "bbox": [ 16.43, 49.1, 16.73, 49.3 ], "area": "Město Příklad" }, "source": { "type": "raster", "tiles": [ "https://gis.mesto-priklad.cz/wms?service=WMS&version=1.1.1&request=GetMap&layers=up_hlavni&styles=&format=image/png&transparent=true&srs=EPSG:3857&width=256&height=256&bbox={bbox-epsg-3857}" ] }, "presentation": { "type": "raster", "opacity": 0.7 } } ] } ``` ## data-points.json Antwort mit Punkten einschließlich der dm-Erweiterung. ```json { "type": "FeatureCollection", "features": [ { "type": "Feature", "id": 1842, "geometry": { "type": "Point", "coordinates": [ 16.6081, 49.1951 ] }, "properties": { "druh": "papír", "objem": 1100, "vyvoz": "2026-10-01" }, "dm": { "title": "Kontejner Náměstí Svobody", "url": "https://www.mesto-priklad.cz/odpady/1842" } }, { "type": "Feature", "id": 1843, "geometry": { "type": "Point", "coordinates": [ 16.6102, 49.1938 ] }, "properties": { "druh": "sklo", "objem": 1500, "vyvoz": "2026-09-28" } } ], "dm": { "generated": "2026-10-06T08:00:00Z", "ttl": 3600, "total": 2, "truncated": false } } ``` ## data-polygons.json Antwort mit einer Fläche (Polygon) und einem numerischen Wert für die Choroplethenkarte. ```json { "type": "FeatureCollection", "features": [ { "type": "Feature", "id": "h-001", "geometry": { "type": "Polygon", "coordinates": [ [ [ 16.6, 49.19 ], [ 16.61, 49.19 ], [ 16.61, 49.2 ], [ 16.6, 49.2 ], [ 16.6, 49.19 ] ] ] }, "properties": { "db": 62 } } ], "dm": { "ttl": 86400 } } ``` --- # Datenquellen der Datenkarte Katalog aller angebundenen Anbieter und Datensätze (Protokoll 0.1, erzeugt 2026-10-21T23:16:09.770Z). Maschinenlesbar: https://datenkarte.at/api/catalog. Daten der GeoJSON-Datensätze: `GET https://datenkarte.at/api/data/{provider}/{dataset}` (siehe https://datenkarte.at/dokumentation/api.md). ## basemap.at - ID: `basemap-at` - Beschreibung: Verwaltungsgrundkarte Österreichs der neun Bundesländer und ihrer Partner (geoland.at): Orthofoto, Geländeschummerung und Oberflächenmodell. - Web: https://basemap.at/ - Lizenz: CC BY 4.0 (https://www.data.gv.at/katalog/datasets/2c54f4d6-5712-4e5a-a025-b7f7a396c39b), Namensnennung „Datenquelle: basemap.at“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Orthofoto - Schlüssel: `basemap-at/orthofoto` - Beschreibung: Farbiges Luftbild von ganz Österreich mit bis zu 15–30 cm Auflösung: Häuser, Grundstücke, Felder und Wald. Die Bundesländer befliegen das Land abwechselnd, die Bilder sind ein bis drei Jahre alt. - Kategorie: Gebiet und Kataster - Schlüsselwörter: Luftbild, Orthofoto, Satellitenbild, Foto, Luftaufnahme, basemap - Verwendungszwecke: construction, land-purchase, housing - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02 - Aktualität: jährlich für Teile des Landes - Namensnennung: Datenquelle: basemap.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/basemap-at/orthofoto ### Geländeschummerung - Schlüssel: `basemap-at/gelaende` - Beschreibung: Schattiertes Relief aus dem Laserscan-Geländemodell der Länder: zeigt Hänge, Täler, Böschungen und alte Wege auch unter dem Wald. - Kategorie: Gebiet und Kataster - Schlüsselwörter: Gelände, Relief, Schummerung, Hangneigung, Geländemodell, Laserscan, Höhenmodell - Verwendungszwecke: construction, tourism, land-purchase - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02 - Namensnennung: Datenquelle: basemap.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/basemap-at/gelaende ### Oberflächenschummerung - Schlüssel: `basemap-at/oberflaeche` - Beschreibung: Schattiertes Oberflächenmodell mit Gebäuden und Bäumen. Gut zu erkennen sind Bauhöhen, Waldränder und einzelne Bäume. - Kategorie: Gebiet und Kataster - Schlüsselwörter: Oberflächenmodell, Gebäudehöhe, Bäume, Relief, Schummerung, Laserscan - Verwendungszwecke: construction, housing - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02 - Namensnennung: Datenquelle: basemap.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/basemap-at/oberflaeche ## Bundesamt für Eich- und Vermessungswesen - ID: `bev` - Beschreibung: Vermessungsbehörde des Bundes. Führt den Grenz- und Grundsteuerkataster mit allen Grundstücken Österreichs. - Web: https://www.bev.gv.at/ - Lizenz: CC BY 4.0 (https://www.data.gv.at/katalog/datasets/f114762e-93a7-4c6b-b39b-908deaf433f0), Namensnennung „Datenquelle: BEV“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Grundstücke (Katastralmappe) - Schlüssel: `bev/grundstuecke` - Beschreibung: Grundstücksgrenzen und Grundstücksnummern aus der Digitalen Katastralmappe des BEV. Sichtbar erst bei starker Vergrößerung. Die Grenzen sind grafisch – rechtsverbindlich ist nur der Grenzkataster. - Kategorie: Gebiet und Kataster - Schlüsselwörter: Grundstück, Kataster, Katastralmappe, DKM, Grundstücksnummer, Parzelle, Grundstücksgrenze - Verwendungszwecke: construction, land-purchase, housing - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02; ab Zoomstufe 15 - Aktualität: vierteljährlich - Namensnennung: Datenquelle: BEV (CC BY 4.0) - Karte: https://datenkarte.at/karte/bev/grundstuecke ## Umweltbundesamt - ID: `umweltbundesamt` - Beschreibung: Umweltschutz-Fachstelle des Bundes. Hochwassergefahrenkarten nach der EU-Hochwasserrichtlinie im Auftrag des Bundesministeriums für Land- und Forstwirtschaft (BMLUK). - Web: https://www.umweltbundesamt.at/ - Lizenz: CC BY 4.0 (https://www.data.gv.at/katalog/datasets/b9c3445e-0162-4ce0-8c16-43e4ae81851c), Namensnennung „Datenquelle: BMLUK, Umweltbundesamt“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Hochwasser – HQ100 (hundertjährlich) - Schlüssel: `umweltbundesamt/hochwasser-hq100` - Beschreibung: Flächen, die bei einem Hochwasser mit mittlerer Wahrscheinlichkeit (statistisch einmal in 100 Jahren, HQ100) überflutet werden, aus den Hochwassergefahrenkarten nach der EU-Hochwasserrichtlinie. Erfasst sind die Gebiete mit potenziellem signifikantem Hochwasserrisiko – kleine Bäche fehlen. Verbindlich sind die Gefahrenzonenpläne der Gemeinde. - Kategorie: Wasser - Schlüsselwörter: Hochwasser, Überflutung, Hochwassergefahrenkarte, HWRL, Überschwemmung, HQ100, hundertjährliches Hochwasser - Verwendungszwecke: construction, land-purchase, housing - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02 - Namensnennung: Datenquelle: BMLUK, Umweltbundesamt (CC BY 4.0) - Karte: https://datenkarte.at/karte/umweltbundesamt/hochwasser-hq100 ### Hochwasser – HQ30 (dreißigjährlich) - Schlüssel: `umweltbundesamt/hochwasser-hq30` - Beschreibung: Flächen, die bei einem Hochwasser mit hoher Wahrscheinlichkeit (statistisch einmal in 30 Jahren, HQ30) überflutet werden, aus den Hochwassergefahrenkarten nach der EU-Hochwasserrichtlinie. Erfasst sind die Gebiete mit potenziellem signifikantem Hochwasserrisiko – kleine Bäche fehlen. Verbindlich sind die Gefahrenzonenpläne der Gemeinde. - Kategorie: Wasser - Schlüsselwörter: Hochwasser, Überflutung, Hochwassergefahrenkarte, HWRL, Überschwemmung, HQ30, dreißigjährliches Hochwasser - Verwendungszwecke: construction, land-purchase, housing - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02 - Namensnennung: Datenquelle: BMLUK, Umweltbundesamt (CC BY 4.0) - Karte: https://datenkarte.at/karte/umweltbundesamt/hochwasser-hq30 ### Hochwasser – HQ300 (Extremereignis) - Schlüssel: `umweltbundesamt/hochwasser-hq300` - Beschreibung: Flächen, die bei einem Hochwasser mit niedriger Wahrscheinlichkeit (statistisch einmal in 300 Jahren, HQ300, oder Extremereignis) überflutet werden, aus den Hochwassergefahrenkarten nach der EU-Hochwasserrichtlinie. Erfasst sind die Gebiete mit potenziellem signifikantem Hochwasserrisiko – kleine Bäche fehlen. Verbindlich sind die Gefahrenzonenpläne der Gemeinde. - Kategorie: Wasser - Schlüsselwörter: Hochwasser, Überflutung, Hochwassergefahrenkarte, HWRL, Überschwemmung, HQ300, Extremhochwasser - Verwendungszwecke: construction, land-purchase, housing - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02 - Namensnennung: Datenquelle: BMLUK, Umweltbundesamt (CC BY 4.0) - Karte: https://datenkarte.at/karte/umweltbundesamt/hochwasser-hq300 ## Wildbach- und Lawinenverbauung (die.wildbach) - ID: `wlv` - Beschreibung: Dienststelle des Bundesministeriums für Land- und Forstwirtschaft (BMLUK). Erstellt die Gefahrenzonenpläne für Wildbäche, Lawinen und Erosion. - Web: https://www.die-wildbach.at/ - Lizenz: Keine Nutzungsbedingungen (INSPIRE) (https://www.data.gv.at/katalog/datasets/298a3eb3-0190-4ae3-b1ab-21b34a83d2b0), Namensnennung „Datenquelle: die.wildbach (BMLUK)“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Gefahrenzonen Wildbach und Lawine - Schlüssel: `wlv/gefahrenzonenplan` - Beschreibung: Gefahrenzonenpläne der Wildbach- und Lawinenverbauung: rote Zonen (Bauen kaum möglich), gelbe Zonen (Bauen mit Auflagen) sowie blaue Vorbehalts- und braune und violette Hinweisbereiche für Rutschungen, Steinschlag und Schutzmaßnahmen. Gilt für Wildbäche und Lawinen; für Flüsse siehe die Hochwasserkarten. - Kategorie: Risiken und Einschränkungen - Schlüsselwörter: Gefahrenzonenplan, Wildbach, Lawine, rote Zone, gelbe Zone, Mure, Steinschlag, Rutschung, Naturgefahren - Verwendungszwecke: construction, land-purchase, housing - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02 - Namensnennung: Datenquelle: die.wildbach (BMLUK) (Keine Nutzungsbedingungen (INSPIRE)) - Karte: https://datenkarte.at/karte/wlv/gefahrenzonenplan ## GeoSphere Austria - ID: `geosphere` - Beschreibung: Bundesanstalt für Geologie, Geophysik, Klimatologie und Meteorologie (ehemals ZAMG). Wetter- und Klimadaten aus dem staatlichen Messnetz. - Web: https://www.geosphere.at/ - Lizenz: CC BY 4.0 (https://data.hub.geosphere.at/dataset/tawes-v1-10min), Namensnennung „Datenquelle: GeoSphere Austria“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Aktuelles Wetter an Messstationen - Schlüssel: `geosphere/wetter-aktuell` - Beschreibung: Temperatur, Luftfeuchte, Wind, Niederschlag und Schneehöhe von rund 280 Wetterstationen der GeoSphere Austria, aktualisiert alle 10 Minuten. Die Farbe zeigt die Lufttemperatur. Bergstationen messen deutlich kälter als Orte im Tal. - Kategorie: Natur und Landschaft - Schlüsselwörter: Wetter, Temperatur, Wind, Niederschlag, Regen, Schneehöhe, Wetterstation, TAWES, ZAMG, Luftfeuchte - Verwendungszwecke: tourism, agriculture - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/geosphere/wetter-aktuell - Visualisierung: `circle` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02 - Aktualität: alle 10 Minuten - Namensnennung: Datenquelle: GeoSphere Austria (CC BY 4.0) - Karte: https://datenkarte.at/karte/geosphere/wetter-aktuell | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `station` | Station | string | | | `temperatur` | Lufttemperatur | number | °C | | `luftfeuchte` | Relative Luftfeuchte | integer | % | | `wind` | Wind | integer | km/h | | `windspitze` | Windspitze | integer | km/h | | `niederschlag` | Niederschlag (10 Minuten) | number | mm | | `schneehoehe` | Schneehöhe | integer | cm | | `luftdruck` | Luftdruck | number | hPa | | `seehoehe` | Seehöhe | integer | m | | `bundesland` | Bundesland | string | | | `messzeit` | Messzeit | datetime | | ## E-Control - ID: `e-control` - Beschreibung: Regulierungsbehörde für Strom und Gas. Betreibt im Auftrag des Wirtschaftsministeriums den Spritpreisrechner mit den gemeldeten Preisen aller Tankstellen. - Web: https://www.spritpreisrechner.at/ - Lizenz: Bedingungen des Anbieters (https://www.spritpreisrechner.at/), Namensnennung „Datenquelle: E-Control, Spritpreisrechner“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Spritpreise an Tankstellen (live) - Schlüssel: `e-control/spritpreise` - Beschreibung: Tankstellen in der Umgebung der Kartenmitte mit dem aktuellen Preis für Diesel, Super 95 oder Erdgas. Die E-Control veröffentlicht Preise nur für die günstigsten fünf Tankstellen je Abfrage; bei den übrigen fehlt der Preis. Sichtbar ab Vergrößerung auf eine Region. - Kategorie: Verkehr - Schlüsselwörter: Spritpreis, Tankstelle, Benzinpreis, Dieselpreis, Diesel, Super, Tanken, Spritpreisrechner - Verwendungszwecke: transport - Quelle: GeoJSON, Modus `bbox` (Abfrage mit bbox und zoom); nur zur Anzeige in der Karte, die Daten stellt der ursprüngliche Dienst bereit: https://www.spritpreisrechner.at/ - Visualisierung: `circle` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02; ab Zoomstufe 10 - Aktualität: laufend - Namensnennung: Datenquelle: E-Control, Spritpreisrechner (Bedingungen des Anbieters) - Karte: https://datenkarte.at/karte/e-control/spritpreise | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `name` | Tankstelle | string | | | `preis` | Preis | number | €/l | | `sorte` | Sorte | string | | | `adresse` | Adresse | string | | | `geoeffnet` | Jetzt geöffnet | boolean | | | `preis_bekannt` | Preis veröffentlicht | string | | | Parameter | Beschriftung | Typ | Optionen / Bereich | Standard | |---|---|---|---|---| | `sorte` | Sorte | enum | `DIE`, `SUP`, `GAS` | DIE | ## Stadt Wien – Open Government Data - ID: `stadt-wien` - Beschreibung: Offene Daten der Stadt Wien: Trinkbrunnen, WC-Anlagen, Spielplätze, Hundezonen, Bäume, Ladestationen, Defibrillatoren und Kurzparkzonen. - Web: https://data.wien.gv.at/ - Lizenz: CC BY 4.0 (https://digitales.wien.gv.at/open-data/nutzungsbedingungen/), Namensnennung „Datenquelle: Stadt Wien – data.wien.gv.at“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Trinkbrunnen in Wien - Schlüssel: `stadt-wien/trinkbrunnen` - Beschreibung: Über 2300 Trinkbrunnen, Trinkhydranten, Sprühnebelduschen und Spielbrunnen der Wiener Wasser. Viele haben eine Tränke für Hunde. Im Winter sind die meisten abgedreht. - Kategorie: Infrastruktur - Schlüsselwörter: Trinkbrunnen, Trinkwasser, Wasser, Sprühnebel, Abkühlung, Hitze, Hund, Wiener Wasser - Verwendungszwecke: tourism, housing - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/stadt-wien/trinkbrunnen - Visualisierung: `circle` - Abdeckung: Wien; bbox 16.18, 48.11, 16.58, 48.33 - Aktualität: täglich - Namensnennung: Datenquelle: Stadt Wien – data.wien.gv.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/stadt-wien/trinkbrunnen | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `art` | Art | string | | | `traenke` | Tränke für Hunde | boolean | | ### Öffentliche WC-Anlagen in Wien - Schlüssel: `stadt-wien/wc-anlagen` - Beschreibung: Öffentliche Toiletten der Stadt Wien mit Öffnungszeiten, Ausstattung und barrierefreien Kabinen. - Kategorie: Infrastruktur - Schlüsselwörter: WC, Toilette, öffentliche Toilette, barrierefrei, Klo, Euro-Key - Verwendungszwecke: tourism - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/stadt-wien/wc-anlagen - Visualisierung: `circle` - Abdeckung: Wien; bbox 16.18, 48.11, 16.58, 48.33 - Aktualität: täglich - Namensnennung: Datenquelle: Stadt Wien – data.wien.gv.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/stadt-wien/wc-anlagen | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `ort` | Ort | string | | | `oeffnungszeit` | Öffnungszeit | string | | | `einschraenkungen` | Einschränkungen | string | | | `betreuung` | Personalbetreuung | string | | | `kabinen` | Kabinen | string | | | `barrierefrei` | Barrierefrei | boolean | | | `ausstattung` | Ausstattung | string | | | `bezirk` | Bezirk | string | | | `info` | Weitere Informationen | url | | ### Spielplätze in Wien - Schlüssel: `stadt-wien/spielplaetze` - Beschreibung: Spielplätze in den Parks der Stadt Wien mit Angaben zu Spielgeräten und Ballspielplätzen. - Kategorie: Gesellschaft und Dienste - Schlüsselwörter: Spielplatz, Kinder, Park, Ballspielplatz, Spielgeräte, Familie - Verwendungszwecke: housing, tourism - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/stadt-wien/spielplaetze - Visualisierung: `circle` - Abdeckung: Wien; bbox 16.18, 48.11, 16.58, 48.33 - Aktualität: täglich - Namensnennung: Datenquelle: Stadt Wien – data.wien.gv.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/stadt-wien/spielplaetze | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `anlage` | Anlage | string | | | `typ` | Typ | string | | | `ausstattung` | Ausstattung | string | | | `bezirk` | Bezirk | string | | ### Hundezonen in Wien - Schlüssel: `stadt-wien/hundezonen` - Beschreibung: Hundezonen und Hundeauslaufplätze in Wiener Parks, in denen Hunde ohne Leine und Beißkorb laufen dürfen. - Kategorie: Gesellschaft und Dienste - Schlüsselwörter: Hundezone, Hundeauslaufplatz, Hund, Park, Hundewiese - Verwendungszwecke: housing - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/stadt-wien/hundezonen - Visualisierung: `fill` - Abdeckung: Wien; bbox 16.18, 48.11, 16.58, 48.33 - Aktualität: täglich - Namensnennung: Datenquelle: Stadt Wien – data.wien.gv.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/stadt-wien/hundezonen | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `anlage` | Anlage | string | | | `typ` | Typ | string | | | `flaeche` | Fläche | string | | | `eingezaeunt` | Eingezäunt | string | | | `bezirk` | Bezirk | string | | ### Bäume in Wien (Baumkataster) - Schlüssel: `stadt-wien/baumkataster` - Beschreibung: Über 200 000 Bäume auf öffentlichen Flächen mit Baumart, Pflanzjahr, Höhe und Stammumfang. Sichtbar bei starker Vergrößerung. - Kategorie: Natur und Landschaft - Schlüsselwörter: Baum, Baumkataster, Stadtbaum, Baumart, Grün, Allee, Stadtklima - Verwendungszwecke: housing - Quelle: GeoJSON, Modus `bbox` (Abfrage mit bbox und zoom); Daten: https://datenkarte.at/api/data/stadt-wien/baumkataster - Visualisierung: `circle` - Abdeckung: Wien; bbox 16.18, 48.11, 16.58, 48.33; ab Zoomstufe 16 - Aktualität: täglich - Namensnennung: Datenquelle: Stadt Wien – data.wien.gv.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/stadt-wien/baumkataster | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `art` | Baumart | string | | | `pflanzjahr` | Pflanzjahr | integer | | | `hoehe` | Höhe | string | | | `stammumfang` | Stammumfang | integer | cm | | `kronendurchmesser` | Kronendurchmesser | string | | | `krone` | Kronenklasse | integer | | | `standort` | Standort | string | | ### E-Ladestationen in Wien - Schlüssel: `stadt-wien/e-ladestationen` - Beschreibung: Öffentliche Ladestellen für Elektroautos von Wien Energie im Straßenraum. - Kategorie: Energie - Schlüsselwörter: Ladestation, E-Auto, Elektroauto, Laden, Ladestelle, E-Mobilität, Wien Energie - Verwendungszwecke: transport, housing - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/stadt-wien/e-ladestationen - Visualisierung: `circle` - Abdeckung: Wien; bbox 16.18, 48.11, 16.58, 48.33 - Aktualität: täglich - Namensnennung: Datenquelle: Stadt Wien – data.wien.gv.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/stadt-wien/e-ladestationen | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `adresse` | Adresse | string | | | `betreiber` | Betreiber | string | | | `ladepunkt` | Ladepunkt-ID (EVSE) | string | | ### Defibrillatoren in Wien - Schlüssel: `stadt-wien/defibrillatoren` - Beschreibung: Öffentlich zugängliche Defibrillatoren (Defis) mit Standortbeschreibung und Zugangszeiten. Im Notfall zuerst 144 anrufen. - Kategorie: Gesellschaft und Dienste - Schlüsselwörter: Defibrillator, Defi, AED, Erste Hilfe, Herzstillstand, Notfall - Verwendungszwecke: housing, public-administration - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/stadt-wien/defibrillatoren - Visualisierung: `circle` - Abdeckung: Wien; bbox 16.18, 48.11, 16.58, 48.33 - Aktualität: täglich - Namensnennung: Datenquelle: Stadt Wien – data.wien.gv.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/stadt-wien/defibrillatoren | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `adresse` | Adresse | string | | | `standort` | Standort | string | | | `zugang` | Zugänglich | string | | | `stock` | Stockwerk | string | | ### Sehenswürdigkeiten in Wien - Schlüssel: `stadt-wien/sehenswuerdigkeiten` - Beschreibung: Ausgewählte Sehenswürdigkeiten der Stadt mit Foto und Link zu weiteren Informationen. - Kategorie: Gesellschaft und Dienste - Schlüsselwörter: Sehenswürdigkeit, Tourismus, Wien, Ausflug, Denkmal, Museum - Verwendungszwecke: tourism - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/stadt-wien/sehenswuerdigkeiten - Visualisierung: `circle` - Abdeckung: Wien; bbox 16.18, 48.11, 16.58, 48.33 - Namensnennung: Datenquelle: Stadt Wien – data.wien.gv.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/stadt-wien/sehenswuerdigkeiten | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `name` | Name | string | | | `adresse` | Adresse | string | | | `foto` | Foto | image | | | `info` | Weitere Informationen | url | | ### Kurzparkzonen in Wien - Schlüssel: `stadt-wien/kurzparkzonen` - Beschreibung: Gebiete mit gebührenpflichtiger Kurzparkzone (Parkpickerl). Die Geltungszeiten stehen auf den Verkehrszeichen und bei der Stadt Wien. - Kategorie: Verkehr - Schlüsselwörter: Kurzparkzone, Parken, Parkpickerl, Parkgebühr, Parkschein, Auto - Verwendungszwecke: transport, housing - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Wien; bbox 16.18, 48.11, 16.58, 48.33 - Namensnennung: Datenquelle: Stadt Wien – data.wien.gv.at (CC BY 4.0) - Karte: https://datenkarte.at/karte/stadt-wien/kurzparkzonen ## nextbike - ID: `nextbike` - Beschreibung: Betreiber von Leihradsystemen in österreichischen Städten, unter anderem WienMobil Rad, city bike Linz, Stadtrad Innsbruck und nextbike Niederösterreich. Verfügbarkeit in Echtzeit. - Web: https://www.nextbike.at/ - Lizenz: CC0 1.0 (https://creativecommons.org/publicdomain/zero/1.0/deed.de), Namensnennung „nextbike“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Leihräder (live) - Schlüssel: `nextbike/leihraeder` - Beschreibung: Leihradstationen in Wien, Linz, Innsbruck, Klagenfurt, Niederösterreich, Tirol und Vorarlberg mit der Zahl der Räder, die man gerade ausleihen kann. - Kategorie: Verkehr - Schlüsselwörter: Leihrad, Bikesharing, Fahrrad, nextbike, WienMobil Rad, Citybike, Stadtrad, Mobilität - Verwendungszwecke: transport, tourism - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/nextbike/leihraeder - Visualisierung: `circle` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02 - Aktualität: minütlich - Namensnennung: nextbike (CC0 1.0) - Karte: https://datenkarte.at/karte/nextbike/leihraeder | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `name` | Station | string | | | `stadt` | Stadt | string | | | `system` | System | string | | | `raeder` | Freie Räder | integer | | | `stellplaetze` | Stellplätze | integer | | | `freie_stellplaetze` | Freie Stellplätze | integer | | ## Sensor.Community - ID: `sensor-community` - Beschreibung: Bürgerwissenschaftliches Netz günstiger Feinstaubsensoren. Inoffizielle, orientierende Messung. - Web: https://sensor.community/de/ - Lizenz: ODC DbCL 1.0 (https://opendatacommons.org/licenses/dbcl/1-0/), Namensnennung „Sensor.Community“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Feinstaub aus Bürgersensoren (live) - Schlüssel: `sensor-community/feinstaub-sensoren` - Beschreibung: Feinstaubkonzentration PM2,5 und PM10 aus privaten Sensoren der letzten 5 Minuten. Dichteres Netz als die amtlichen Messstellen, aber weniger genau – bei Nebel und hoher Luftfeuchte messen die Sensoren zu viel. - Kategorie: Natur und Landschaft - Schlüsselwörter: Feinstaub, PM2,5, PM10, Luftqualität, Luftgüte, Sensor, Smog, Hausbrand - Verwendungszwecke: housing - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/sensor-community/feinstaub-sensoren - Visualisierung: `circle` - Abdeckung: Österreich; bbox 9.53, 46.37, 17.17, 49.02 - Aktualität: alle 5 Minuten - Namensnennung: Sensor.Community (ODC DbCL 1.0) - Karte: https://datenkarte.at/karte/sensor-community/feinstaub-sensoren | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `pm25` | PM2,5 | number | µg/m³ | | `pm10` | PM10 | number | µg/m³ | | `messung` | Messung (UTC) | string | | ## Euro-Mediterranes Seismologisches Zentrum (EMSC) - ID: `emsc` - Beschreibung: Europäisches Zentrum, das die Meldungen seismologischer Observatorien sammelt, auch des Österreichischen Erdbebendienstes der GeoSphere Austria. Erfasst auch schwache Beben. - Web: https://www.emsc-csem.org/ - Lizenz: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/deed.de), Namensnennung „EMSC-CSEM“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Erdbeben in Europa und Umgebung - Schlüssel: `emsc/erdbeben` - Beschreibung: Beben aus dem gewählten Zeitraum im aktuellen Kartenausschnitt, auch schwache lokale Beben – in Österreich vor allem im Wiener Becken, im Mürztal und in Tirol. - Kategorie: Risiken und Einschränkungen - Schlüsselwörter: Erdbeben, Beben, Seismik, Erdstoß, Wiener Becken, Mürztal, Erdbebendienst - Verwendungszwecke: construction, housing - Quelle: GeoJSON, Modus `bbox` (Abfrage mit bbox und zoom); Daten: https://datenkarte.at/api/data/emsc/erdbeben - Visualisierung: `circle` - Abdeckung: Welt, detailliert Europa; bbox -180, -85, 180, 85 - Aktualität: laufend - Namensnennung: EMSC-CSEM (CC BY 4.0) - Karte: https://datenkarte.at/karte/emsc/erdbeben | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `ort` | Ort | string | | | `magnitude` | Magnitude | number | | | `tiefe` | Tiefe | number | km | | `zeit` | Zeit | datetime | | | `stunden` | Vor Stunden | integer | h | | `link` | Details bei der Quelle | url | | | `quelle` | Observatorium | string | | | Parameter | Beschriftung | Typ | Optionen / Bereich | Standard | |---|---|---|---|---| | `tage` | Aus den letzten | enum | `1`, `7`, `30`, `365` | 30 | | `minmag` | Mindestmagnitude | number | 0–7 | 0 | ## U.S. Geological Survey - ID: `usgs` - Beschreibung: Geologischer Dienst der USA. Weltweiter Erdbebenkatalog, minütlich aktualisiert. - Web: https://earthquake.usgs.gov/ - Lizenz: Public domain (https://www.usgs.gov/information-policies-and-instructions/copyrights-and-credits), Namensnennung „USGS“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Erdbeben weltweit - Schlüssel: `usgs/erdbeben` - Beschreibung: Weltweit registrierte Erdbeben. Die Kreisgröße entspricht der Magnitude, die Farbe dem Alter des Bebens. - Kategorie: Risiken und Einschränkungen - Schlüsselwörter: Erdbeben, Beben, Seismik, Magnitude, Tsunami - Verwendungszwecke: tourism, investment - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/usgs/erdbeben - Visualisierung: `circle` - Abdeckung: Welt; bbox -180, -85, 180, 85 - Aktualität: minütlich - Namensnennung: USGS (Public domain) - Karte: https://datenkarte.at/karte/usgs/erdbeben | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `ort` | Ort | string | | | `magnitude` | Magnitude | number | | | `tiefe` | Tiefe | number | km | | `zeit` | Zeit | datetime | | | `stunden` | Vor Stunden | integer | h | | `link` | Details bei der Quelle | url | | | `tsunami` | Tsunami-Warnung | boolean | | | Parameter | Beschriftung | Typ | Optionen / Bereich | Standard | |---|---|---|---|---| | `zeitraum` | Zeitraum und Stärke | enum | `2.5_day`, `2.5_week`, `4.5_month`, `significant_month` | 2.5_week | ## Global Disaster Alert and Coordination System - ID: `gdacs` - Beschreibung: Gemeinsames Warnsystem der Vereinten Nationen und der Europäischen Kommission für Naturkatastrophen. - Web: https://www.gdacs.org/ - Lizenz: Nutzungsbedingungen GDACS (https://www.gdacs.org/About/termsofuse.aspx), Namensnennung „GDACS (Vereinte Nationen, Europäische Kommission)“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Aktuelle Katastrophen weltweit - Schlüssel: `gdacs/katastrophen` - Beschreibung: Aktuelle Warnungen vor Erdbeben, Wirbelstürmen, Überschwemmungen, Vulkanen, Dürre und Waldbränden. Die Farbe zeigt die Warnstufe; die Warnungen entstehen automatisch. - Kategorie: Risiken und Einschränkungen - Schlüsselwörter: Katastrophe, Überschwemmung, Wirbelsturm, Hurrikan, Vulkan, Dürre, Waldbrand, Warnung - Verwendungszwecke: tourism, investment - Quelle: GeoJSON, Modus `full`; Daten: https://datenkarte.at/api/data/gdacs/katastrophen - Visualisierung: `circle` - Abdeckung: Welt; bbox -180, -85, 180, 85 - Aktualität: laufend - Namensnennung: GDACS (Vereinte Nationen, Europäische Kommission) (Nutzungsbedingungen GDACS) - Karte: https://datenkarte.at/karte/gdacs/katastrophen | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `name` | Ereignis | string | | | `art` | Art | string | | | `stufe` | Warnstufe | string | | | `punkte` | Warnwert | number | | | `land` | Land | string | | | `von` | Von | datetime | | | `bis` | Bis | datetime | | | `link` | GDACS-Bericht | url | | | Parameter | Beschriftung | Typ | Optionen / Bereich | Standard | |---|---|---|---|---| | `art` | Ereignisarten | multi-enum | `EQ`, `TC`, `FL`, `VO`, `DR`, `WF` | | ## Wikipedia - ID: `wikipedia` - Beschreibung: Freie Enzyklopädie. Artikel mit Koordinaten aus der deutschsprachigen Wikipedia. - Web: https://de.wikipedia.org/ - Lizenz: CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/), Namensnennung „Wikipedia“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Wikipedia-Artikel in der Umgebung - Schlüssel: `wikipedia/artikel` - Beschreibung: Orte, Bauwerke und Denkmäler, zu denen es einen Artikel in der deutschsprachigen Wikipedia gibt. Gesucht wird in der Umgebung der Kartenmitte (etwa 20 × 20 km). - Kategorie: Gesellschaft und Dienste - Schlüsselwörter: Wikipedia, Denkmal, Sehenswürdigkeit, Geschichte, Ausflug, Tourismus, Artikel - Verwendungszwecke: tourism, housing - Quelle: GeoJSON, Modus `bbox` (Abfrage mit bbox und zoom); Daten: https://datenkarte.at/api/data/wikipedia/artikel - Visualisierung: `circle` - Abdeckung: Welt; bbox -180, -85, 180, 85; ab Zoomstufe 12 - Aktualität: laufend - Namensnennung: Wikipedia (CC BY-SA 4.0) - Karte: https://datenkarte.at/karte/wikipedia/artikel | Eigenschaft | Beschriftung | Typ | Einheit | |---|---|---|---| | `name` | Artikel | string | | | `beschreibung` | Beschreibung | string | | | `art` | Art | string | | | `bild` | Bild | image | | | `link` | Wikipedia | url | | ## NASA Earth Observing System (GIBS) - ID: `nasa` - Beschreibung: Tägliche Satellitenbilder der Erde von NASA-Satelliten. - Web: https://www.earthdata.nasa.gov/engage/open-data-services-software/earthdata-developer-portal/gibs-api - Lizenz: NASA open data (https://www.earthdata.nasa.gov/engage/open-data-services-software/data-and-information-policy), Namensnennung „NASA EOSDIS GIBS“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Satellitenbild des Tages - Schlüssel: `nasa/satellitenbild-des-tages` - Beschreibung: Neuestes Tagesbild des Satelliten Terra (MODIS) in natürlichen Farben. Zeigt Bewölkung, Schnee, Rauch oder trübes Wasser nach Hochwasser. Auflösung etwa 250 m. - Kategorie: Natur und Landschaft - Schlüsselwörter: Satellit, Satellitenbild, Bewölkung, Wetter, Schnee, MODIS - Verwendungszwecke: agriculture, tourism - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Welt; bbox -180, -85, 180, 85 - Aktualität: täglich - Namensnennung: NASA EOSDIS GIBS (NASA open data) - Karte: https://datenkarte.at/karte/nasa/satellitenbild-des-tages ### Lichter bei Nacht - Schlüssel: `nasa/lichter-bei-nacht` - Beschreibung: Künstliche Beleuchtung der Erde bei Nacht (VIIRS Black Marble). Zeigt Siedlungen, Straßen und Lichtverschmutzung. - Kategorie: Gesellschaft und Dienste - Schlüsselwörter: Lichter bei Nacht, Lichtverschmutzung, Beleuchtung, Siedlung, Nacht - Verwendungszwecke: housing, investment - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Welt; bbox -180, -85, 180, 85 - Namensnennung: NASA EOSDIS GIBS (NASA open data) - Karte: https://datenkarte.at/karte/nasa/lichter-bei-nacht ## Europäische Umweltagentur - ID: `eea` - Web: https://www.eea.europa.eu/ - Lizenz: CC BY 4.0 (https://www.eea.europa.eu/en/legal-notice), Namensnennung „© EEA“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Feinstaub PM2,5 – Jahresmittel - Schlüssel: `eea/feinstaub-pm25` - Beschreibung: Jahresmittel der Feinstaubkonzentration PM2,5 im 1-km-Raster für ganz Europa, modelliert aus Stationsmessungen, Satellitendaten und weiteren Quellen. Zeigt, wo die Luft dauerhaft schlechter ist – anders als Live-Messungen unabhängig vom heutigen Wetter. Die WHO empfiehlt 5 µg/m³, der EU-Grenzwert liegt bei 25 µg/m³ (ab 2030 bei 10 µg/m³). - Kategorie: Natur und Landschaft - Schlüsselwörter: Feinstaub, PM2,5, Luftverschmutzung, Luftqualität, Luftgüte, Smog, Jahresmittel - Verwendungszwecke: housing, investment - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Europa; bbox -31, 27, 45, 72 - Aktualität: 2022 - Namensnennung: © EEA (CC BY 4.0) - Karte: https://datenkarte.at/karte/eea/feinstaub-pm25 ### Natura 2000 in Europa - Schlüssel: `eea/natura-2000` - Beschreibung: Fauna-Flora-Habitat- und Vogelschutzgebiete des Netzes Natura 2000 in allen EU-Staaten. Für Vorhaben in solchen Gebieten ist eine Naturverträglichkeitsprüfung nötig. - Kategorie: Natur und Landschaft - Schlüsselwörter: Natura 2000, Europaschutzgebiet, Naturschutz, FFH-Gebiet, Vogelschutzgebiet, Schutzgebiet - Verwendungszwecke: construction, land-purchase - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Europäische Union; bbox -31, 27, 45, 72 - Aktualität: jährlich - Namensnennung: © EEA (CC BY 4.0) - Karte: https://datenkarte.at/karte/eea/natura-2000 ## OpenStreetMap – Community-Karten - ID: `osm` - Beschreibung: Themenkarten aus OpenStreetMap-Daten von ehrenamtlichen Projekten (Waymarked Trails, OpenRailwayMap, OpenTopoMap). Die Server haben begrenzte Kapazität. - Web: https://www.openstreetmap.org/ - Lizenz: ODbL / CC BY-SA (https://www.openstreetmap.org/copyright), Namensnennung „Daten © OpenStreetMap-Mitwirkende“ - Das Manifest verwaltet die Datenkarte (öffentlicher Dienst, der Dateninhaber hat sich noch nicht selbst angebunden). ### Wanderwege - Schlüssel: `osm/wanderwege` - Beschreibung: Markierte Wanderwege mit Weitwanderwegen und Nummern der alpinen Vereine aus OpenStreetMap. - Kategorie: Verkehr - Schlüsselwörter: Wandern, Wanderweg, Weitwanderweg, Bergtour, Ausflug, Berge - Verwendungszwecke: tourism - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Welt; bbox -180, -85, 180, 85 - Aktualität: täglich - Namensnennung: Waymarked Trails, Daten © OpenStreetMap-Mitwirkende (CC BY-SA 3.0) - Karte: https://datenkarte.at/karte/osm/wanderwege ### Radrouten - Schlüssel: `osm/radrouten` - Beschreibung: Beschilderte Radrouten aus OpenStreetMap (Waymarked Trails): international (EuroVelo, Donauradweg), überregional und lokal. - Kategorie: Verkehr - Schlüsselwörter: Radroute, Radweg, Fahrrad, Radfahren, Donauradweg, EuroVelo, Ausflug - Verwendungszwecke: tourism, transport - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Welt; bbox -180, -85, 180, 85 - Aktualität: täglich - Namensnennung: Waymarked Trails, Daten © OpenStreetMap-Mitwirkende (CC BY-SA 3.0) - Karte: https://datenkarte.at/karte/osm/radrouten ### Eisenbahnnetz - Schlüssel: `osm/eisenbahn` - Beschreibung: Bahnstrecken, Bahnhöfe und Anschlussgleise weltweit aus OpenRailwayMap (Daten von OpenStreetMap). - Kategorie: Verkehr - Schlüsselwörter: Eisenbahn, Zug, Bahnstrecke, Bahnhof, ÖBB - Verwendungszwecke: transport, housing - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Welt; bbox -180, -85, 180, 85 - Namensnennung: OpenRailwayMap, Daten © OpenStreetMap-Mitwirkende (CC BY-SA 2.0) - Karte: https://datenkarte.at/karte/osm/eisenbahn ### Topografische Karte - Schlüssel: `osm/topografische-karte` - Beschreibung: Landschaft mit Höhenlinien und Geländeschattierung (OpenTopoMap). Verdeckt die Grundkarte. - Kategorie: Gebiet und Kataster - Schlüsselwörter: topografische Karte, Höhenlinien, Gelände, Wanderkarte, Relief - Verwendungszwecke: tourism, construction - Quelle: Rasterkacheln (werden direkt von der Quelle geladen) - Visualisierung: `raster` - Abdeckung: Welt; bbox -180, -85, 180, 85 - Namensnennung: © OpenTopoMap, Daten © OpenStreetMap-Mitwirkende (CC BY-SA 3.0) - Karte: https://datenkarte.at/karte/osm/topografische-karte