Features - JSON-FGspecdraftimplcandidate
Kodierung von Features als JSON-FG.
Umfang
GeoJSON ist eine beliebte Kodierung für Features. Es ist die Standardkodierung für Features in ldproxy. GeoJSON hat jedoch bewusste Einschränkungen, die seine Verwendung unter Umständen verhindern oder einschränken. So ist GeoJSON beispielsweise auf WGS 84-Koordinaten beschränkt, unterstützt keine volumetrischen Geometrien und hat kein Konzept zur Klassifizierung von Features nach ihrem Typ.
OGC Features and Geometries JSON (JSON-FG) ist ein Vorschlag von OGC für GeoJSON-Erweiterungen, die Standardwege zur Unterstützung solcher Anforderungen bieten.
Standardmäßig basieren die Elemente geometry
und place
auf derselben Geometrie-Eigenschaft im Feature-Schema. In einigen Fällen kann es sinnvoll sein, unterschiedliche Eigenschaften zu verwenden. Wenn zum Beispiel ein Gebäude-Feature eine Solid-Geometrie und eine Grundriss-Geometrie hat, kann es sinnvoll sein, den Solid in place
und den Grundriss in geometry
/ GeoJSON bereitzustellen. Um eine andere Geometrieeigenschaft in place
zu verwenden, geben Sie den Eigenschaftsnamen an.
Konformitätsklassen
Der Baustein basiert auf dem Entwurf 0.2.1 von JSON-FG. Die Implementierung wird sich im Zuge der weiteren Standardisierung der Spezifikation noch ändern.
Konfiguration
Optionen
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
buildingBlock | Immer JSON_FG . | string | v2.0 | |
enabled | false | Soll der Baustein aktiviert werden? | boolean | v2.0 |
transformations | {} | Property-Transformationen erfolgen bei der Aufbereitung der Daten für die Rückgabe über die API. Die Datenhaltung selbst bleibt unverändert. Alle Filterausdrücke (siehe queryables in Features) wirken unabhängig von etwaigen Transformationen bei der Ausgabe und müssen auf der Basis der Werte in der Datenhaltung formuliert sein - die Transformationen sind i.A. nicht umkehrbar und eine Berücksichtigung der inversen Transformationen bei Filterausdrücken wäre kompliziert und nur unvollständig möglich. Insofern sollten Eigenschaften, die queryable sein sollen, möglichst bereits in der Datenquelle transformiert sein. Eine Ausnahme sind typischerweise Transformationen in der HTML-Ausgabe, wo direkte Lesbarkeit i.d.R. wichtiger ist als die Filtermöglichkeit. | object | v2.0 |
defaultProfiles | {} | Erlaubt es, den Standardwert des Profile-Parameters für ein bestimmtes Format zu ändern. Der Schlüssel ist die Art des Profils, z. B. rel oder val . Der Wert ist der Standardprofilwert, z. B. rel-as-uri oder val-as-title . Wenn nur einige oder keine Profilarten festgelegt sind, gelten die Anwendungsstandards. | object | v4.2 |
describedby | false | Teilweise Deprecated Für Objektart-spezifische Schemas siehe schemaCollection and schemaFeature . Aktiviert, dass Links zu den generischen JSON-FG und GeoJSON JSON-Schema-Dokumenten in das JSON-FG-Antwortdokument eingefügt werden. Die Links haben den Relationstyp "describedby". Die Schemas können zur Validierung des JSON-Dokuments verwendet werden. | boolean | v3.1 |
schemaCollection | null | Die URI eines JSON-Schema-Dokuments, das eine Feature Collection mit den Features der Collection/des Datensatzes beschreibt. Das Schema wird von JSON-FG Feature-Collection-Responses durch einen Link mit dem Relationstyp "describedby" referenziert. Die Schemas können zur Validierung des JSON-Dokuments verwendet werden. | string | v3.5 |
schemaFeature | null | Die URI eines JSON-Schema-Dokuments, das ein Feature der Collection/des Datensatzes beschreibt. Das Schema wird von JSON-FG Feature-Responses durch einen Link mit dem Relationstyp "describedby" referenziert. Die Schemas können zur Validierung des JSON-Dokuments verwendet werden. | string | v3.5 |
coordRefSys | true | Aktiviert die Ausgabe des Koordinatenreferenzsystems in einem JSON-Member "coordRefSys" bei Features und Feature Collections. Das Koordinatenreferenzsystem wird identifiziert durch seine OGC URI, zum Beispiel http://www.opengis.net/def/crs/EPSG/0/25832 für ETRS89 / UTM 32N. | boolean | v3.1 |
geojsonCompatibility | true | Aktiviert die Unterstützung für den "compatibility=geojson" Media-Type-Parameter. Wenn der Parameter angegeben wird, enthalten JSON-FG-Features mit einem JSON-Member "place", das nicht null ist, auch eine GeoJSON-Geometrie im JSON-Member "geometry" im Koordinatenreferenzsystem WGS 84. Fehlt der Parameter, so ist "geometry" eines JSON-FG-Features null , wenn "place" nicht null ist. | boolean | v3.3 |
featureType | see description | Features werden oft nach der Objektart kategorisiert. In der Regel haben alle Features derselben Art dasselbe Schema und dieselben Eigenschaften. Viele GIS-Clients sind bei der Verarbeitung von Features auf das Wissen über den Objektart angewiesen. Zum Beispiel, wenn einem Feature ein Stil zugeordnet wird, um das Feature auf einer Karte darzustellen. Diese Option fügt ein JSON-Member "featureType" mit den angegebenen Werten hinzu. Wenn ein einzelner Wert angegeben wird, wird ein String hinzugefügt, andernfalls ein Array von Strings. Ein Wert kann ein Template {{type}} enthalten, das durch den Wert der Objekteigenschaft mit role: TYPE im Provider-Schema der Objektart der Collection ersetzt wird. Die Eigenschaft muss vom Typ STRING sein. Wenn der Objekttyp im Provider-Schema einen Wert für objectType hat, dann ist dieser Wert der Default. Ansonsten ist der Default ein leeres Array. | array | v3.1 |
useCuries | false | Bei true sind die Werte in "conformsTo" und "coordRefSys" Safe CURIEs, keine HTTP URIs. Beispiel: [EPSG:25832] statt http://www.opengis.net/def/crs/EPSG/0/25832 . | boolean | v3.6 |
links | [] | Ergänzt den "links"-Array von Features um die angegebenen Links. Alle Werte des Arrays müssen ein gültiges Link-Objekt mit href und rel sein. | array | v3.1 |
includeInGeoJson | [] | Die Option ermöglicht, dass ausgewählte JSON-FG-Erweiterungen auch im GeoJSON-Encoding berücksichtigt werden. Erlaubte Werte sind: describedby , featureType , featureSchema , time , place , coordRefSys , links . conformsTo wird nur in JSON-FG unterstützt. | array | v3.1 |
Beispiele
Beispiel für die Angaben in der Konfigurationsdatei für die gesamte API (aus der API für Topographische Daten in Daraa, Syrien):
- buildingBlock: JSON_FG
enabled: true
featureType:
- nas:{{type}}
Ergänzende Angaben pro Feature Collection mit einem Attribut F_CODE
(für das in der Provider-Konfiguration role: TYPE
gesetzt wurde), um die Objektart zu setzen:
- buildingBlock: JSON_FG
featureType:
- nas:{{type}}
Hierdurch wird bei einem Wert von "GB075" im Attribut F_CODE
die Objektart wie folgt ausgegeben:
{
"type": "Feature",
"id": 1,
"featureType": "nas:GB075",
...
}