FlatGeobuf (*.fgb)
Ermöglicht den Zugriff auf Dateien gemäß der FlatGeobuf.org. Spezifikation.
Abfragen mittels GeoSQL sind möglich.
Die Geometrietypen Curve werden z.Z. nicht unterstützt.
Argumente
Typname: FlatGeobuf
fileName: Der Name der Datei, absolut oder relativ, mit oder ohne Dateierweiterung
epsgCode (-1): Epsg-Code der Daten, wenn nicht definiert, dann wird eine automatische Ermittlung aus der Bounding-Box versucht
style|cssFile: hier immer vom Typ Vektor CSS.
geomColumnName (ShapeGeometry): Name, wie die Geometrie-Spalte benannt werden soll.
enableFlatbufVerify (true): Validierung beim Lesen
Implementierungsdetails
Es wird nur das Format in Version 3.x unterstützt.
Der räumliche Index, wenn vorhanden, wird bei den meisten Abfragen mit ausgewertet.
Bei Sachdaten werden alle definierten Datentypen unterstützt.
Bei Geometrie-Typen sind z.Z. folgende implementiert:
- Point
- LineString
- Polygon
- MultiPoint
- MultiLineString
- MultiPolygon
GeometryCollectionCircularStringCompoundCurveCurvePolygonMultiCurveMultiSurfaceCurveSurfacePolyhedralSurfaceTINTriangle
Beispiel
{
"anyFgb": {
"type": "FlatGeobuf",
"fileName": "d:\\temp\\bsp.fgb"
}
}
FlatgeoBuf als Datenformat in OGC WFS Diensten
Es gibt zwei Seiten der Verwendung, bereitstellen als Ausgabeformat in Diensten und das konsumieren des Formats als Dienste-Client.
In cardo wird für angebotene WFS Diensten das Ausgabeformat "application/flatgeobuf" automatisch mit angegeben, wenn die Ebene ein Iwan7-Vektor Layer ist.
In der WFS Datenquelle kann das Format als Alternative zu GML verwendet werden.
In diesem Zusammenspiel ergibt sich ein recht performanter Weg der Datenbereitstellung/Datenabruf. Hier ein kleines Beispiel, mit absoluten Zahlen. Die Bereitstellung der Daten erfolgt in einem 100MBit Netz
WFS mit GML
WFS FeatureReader: 11757 Datensätze gesamt, Download gesamt 10.16 MByte (evtl. komprimiert). Dauer: 1654 ms (Request: /bin/query
WFS mit flatgeoBuff
WFS FeatureReader: 11757 Datensätze gesamt, Download gesamt 2.44 MByte (evtl. komprimiert). Dauer: 629 ms
Zu erkennen ist, dass die Datenmenge deutlich geringer ist und die Gesamtdauer auch deutlich reduziert werden kann.
Potentielle Probleme
Wichtig ist, dass in dem Dienst die per XSD Schema gelieferte Beschreibung identisch mit der Datenstruktur der gelieferten FlatgeoBuf Struktur entspricht. D.h. alle definierten Felder sind vorhanden, die Datentypen stimmen überein.
In cardo haben wir dies so genau so implementiert.
Eine Besonderheit ist dabei die im WFS Dienst immer vorhandene GML ID "Spalte" (es handelt sich dabei um ein Attribut). Diese ist i.d.R. nicht direkt in der FlatgeoBuff Datei (mit diesem Namen) enthalten.
Der WFS Reader ermittelt dabei die als RowId markierte Spalte in dem FlatgeoBuf Datenstrom und verwendet diese (zusätzlich) als Gml-Identifier.
Zuletzt geändert: 18.04.2025 19:37:16 (erstmals erstellt 15.09.2024) // Alias: ""