Features - JSON-FG

specdraftimplcandidate

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-FGopen in new window. Die Implementierung wird sich im Zuge der weiteren Standardisierung der Spezifikation noch ändern.

Konfiguration

Optionen

NameDefaultBeschreibungTypSeit
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, Syrienopen in new window):


- 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",
  ...
}