Das GeoJSON-Format eignet sich am besten dazu die Daten für eine weitere Prozessierung zu verwenden. Da es kein Paging gibt, kann die Dateigröße sehr anwachsen, was sich bei direkter Einbindung im Frontend nachteilig auf die Performance auswirken kann.
Es muss eine Konfiguration hinterlegt werden, damit die Anfrage von Geodaten aktiviert ist.
Anfragen von Daten im Format GeoJSON werden über die API v4 Schnittstelle durchgeführt. Dafür muss für die Anfrage der Header Accept: application/geo+json gesetzt werden.
Im Allgemeinen sind alle Filter der allgemeinen Datenschnittstelle auch für die Ausgabe als GeoJSON anwendbar. In dieser Dokumentation werden drei Parameter hervorgehoben, mit denen man den den Inhalt der Attribute beeinflussen kann - include, fields und classification_trees.
Zur Authentifizierung muss das API-Token, als URL-Parameter, im JSON-Body oder als Bearer-Token im HTTP-Header mitgesendet werden.
Zu beachten ist, dass eine implizite Filterung auf Geo-Objekte aktiv ist. Es werden keine Daten ohne Koordinaten ausgegeben.
Es können Einzelobjekte oder Ergebnisse von Suchen bzw. Inhaltssammlungen abgefragt werden. Dafür sind die Routen /things/<THING-ID> und /endpoints/<ENDPOINT-ID> vorgesehen. Folgend werden Beispiele für die Anfrage angeführt, wobei bei den Endpoints Beispiele für die Einschränkung der Attribute und Filterung angeführt werden.
Anfragen können als GET oder POST-Methoden gesendet werden.
includeInkludiert zusätzliche Felder in die Ausgabe.
fieldsSchränkt die Ausgabe auf die angegebenen Felder ein.
classificationTreesschränkt die ausgelieferten Klassifizierungen unter dc:classification auf einen Klassifizierungsbaum oder mehrere Klassifizierungsbäume ein.
Gültige Angaben sind eine einzelne UUID, mehrere Komma-getrennte UUIDs, oder ein Array mit UUIDs.
Hat nur eine Auswirkung wenn dc:classification mittels include oder fields angefordert wird.
Die Anfrage eines Einzelobjektes liefert ein GeoJSON mit einem Feature.
curl --request GET \
--url https://<URL>/api/v4/things/<THING-ID> \
--header 'Accept: application/geo+json' \
--header 'Authorization: Bearer <TOKEN>'
{
"type": "Feature",
"id": "<THING-ID>",
"geometry": {
"type": "Point",
"coordinates": [
14.298621,
46.607465
]
},
"properties": {
"@id": "<THING-ID>",
"@type": [
"Place",
"dcls:Örtlichkeit"
],
"name": "dataCycle"
}
}
Endpoints beinhalten Elemente einer gespeicherten Suche oder Inhaltssammlung und liefern eine FeatureCollection mit den Inhalten.
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"
}
}'
{
"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"
}
}
]
}
@id@typefields)namefields oder include)dc:slugdc:classification
@iddc:pathimage
@idthumbnailUrldc:contentScorecurl --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"
}
}'
{
"type": "FeatureCollection",
...
},
"features": [
{
"type": "Feature",
...
},
"properties": {
"@id": "<THING-ID>",
"@type": [
"Place",
"dcls:Örtlichkeit"
],
"dc:classification": [
{
"@id": "<CLASSIFICATION-ID>"
},
{
"@id": "<CLASSIFICATION-ID>"
},
]
}
},
{
...
}
]
}