Skip to content

Datenschnittstelle für die Geojson

GeoJSON – So bekommst du Orte als „Schatzkarte“

Section titled “GeoJSON – So bekommst du Orte als „Schatzkarte“”

Stell dir vor, du hast eine große Schatzkarte. Auf dieser Karte sind viele Punkte, Linien oder Flächen – das sind zum Beispiel Orte, Wege oder Gebiete. Mit GeoJSON kannst du diese „Schätze“ aus dem Computer holen und anschauen.


  • Es muss vorher eingestellt werden, dass du solche Schatzkarten-Daten abfragen darfst.
  • Du brauchst einen geheimen Schlüssel (Token), damit du die Daten bekommst.

Du schickst eine Nachricht an den Computer (API) und sagst:
„Bitte gib mir die Orte als GeoJSON!“

Dafür musst du sagen, dass du GeoJSON haben willst. Das machst du mit einem besonderen Zettel (Header):
Accept: application/geo+json


Du kannst nach einem bestimmten Ort fragen. Dann bekommst du eine kleine Karte mit genau diesem Punkt.

So fragst du:

Terminal window
curl --request GET \
--url https://<URL>/api/v4/things/<THING-ID> \
--header 'Accept: application/geo+json' \
--header 'Authorization: Bearer <TOKEN>'

So sieht die Antwort aus:

Terminal window
{
"type": "Feature",
"id": "<THING-ID>",
"geometry": {
"type": "Point",
"coordinates": [14.298621, 46.607465]
},
"properties": {
"@id": "<THING-ID>",
"@type": ["Place", "dcls:Örtlichkeit"],
"name": "dataCycle"
}
}

Das bedeutet:

  • Es gibt einen Punkt auf der Karte (geometry).
  • Der Punkt hat einen Namen und eine ID.

Du kannst auch nach vielen Orten oder Wegen auf einmal fragen. Dann bekommst du eine große Schatzkarte mit vielen Punkten und Linien.

So fragst du:

Terminal window
curl --request POST \
--url https://<URL>/api/v4/endpoints/<ENDPOINT-ID> \
--header 'Accept: application/geo+json' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"filter": {
"search": "Rosentaler"
}
}'

So sieht die Antwort aus:

Terminal window
{
"type": "FeatureCollection",
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:EPSG::4326"
}
},
"features": [
{
"type": "Feature",
"id": "<THING-ID>",
"geometry": {
"type": "Point",
"coordinates": [14.298621, 46.607465]
},
"properties": {
"@id": "<THING-ID>",
"@type": ["Place", "dcls:Örtlichkeit"],
"name": "dataCycle"
}
},
{
"type": "Feature",
"id": "<THING-ID>",
"geometry": {
"type": "MultiLineString",
"coordinates": [
[
[14.298621, 46.607465],
[14.298379, 46.607329]
]
]
},
"properties": {
"@id": "236bc505-af08-4e53-ae27-69809cd9fff7",
"@type": ["Place", "dcls:Tour"],
"name": "Tour durchs Rosental"
}
}
]
}

Das bedeutet:

  • Du bekommst eine Liste von vielen Punkten und Linien.
  • Jeder Punkt oder jede Linie hat eine ID, einen Namen und Koordinaten (wo auf der Karte).

Du kannst sagen, was du alles über die Orte wissen willst.
Zum Beispiel:

  • include: Zeig mir auch die „Schubladen“ (Kategorien), zu denen der Ort gehört.
  • classification_trees: Zeig mir nur die Kategorien aus einem bestimmten „Baum“.
  • fields: Zeig mir nur bestimmte Infos, z.B. nur die ID und die Kategorie.

So sieht eine Anfrage aus, wenn du das einstellst:

Terminal window
curl --request POST \
--url https://<URL>/api/v4/endpoints/<ENDPOINT-ID> \
--header 'Accept: application/geo+json' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"include": "dc:classification",
"classification_trees": "<CLASSIFICATION-TREE-ID>",
"fields": "@id,dc:classification.@id",
"filter": {
"search": "Rosentaler"
}
}'

So sieht die Antwort aus:

Terminal window
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"@id": "<THING-ID>",
"@type": ["Place", "dcls:Örtlichkeit"],
"dc:classification": [
{ "@id": "<CLASSIFICATION-ID>" },
{ "@id": "<CLASSIFICATION-ID>" }
]
}
}
]
}

Das bedeutet:

  • Du bekommst nur die Infos, die du wirklich brauchst.
  • Die Antwort ist kleiner und schneller.

  • Es werden nur Orte oder Wege angezeigt, die auch wirklich Koordinaten haben.
    (Ohne Schatz auf der Karte gibt es keinen Punkt!)
  • Wenn du zu viele Orte auf einmal abfragst, kann die Datei sehr groß werden.
    Dann dauert es länger, bis du alles bekommst.

So kannst du mit GeoJSON ganz einfach viele Orte, Wege und Gebiete aus dem Computer holen – wie eine digitale Schatzkarte!