-
Notifications
You must be signed in to change notification settings - Fork 1
Geopackage
A GeoPackage(GPKG) is an open, non-proprietary, platform-independent and standards-based data format for geographic information system implemented as a SQLite database container.
The format has become popular lately and is for instance used for basisregistraties such as the BRT.
Geopackages can be read and written to with the GeoDMS, using GDAL. An example is the snapshot from the BAG that we make available as geopakacge for the https://geoparaat.nl project.
See (https://gdal.org/drivers/vector/gpkg.html#vector-gpkg) for a full list of all open and creation options.
Since GeoDMS version 7408, the gdal.vect StorageManager can be used to read geopackages.
container snapshot_result : StorageName = "%LocalDataProjDir%/snapshot_gpkg_20220101.gpkg" , StorageType = "gdal.vect" , StorageReadOnly = "True" , SyncMode = "allTables", , DialogData = "geography/point_rd";
This configures a whole geopackage. All tables become domain units and all attributes are read with default value types.
The configuration of the DialogData property informs the GeoDMS the values unit for all geometry items will be: geography/point_rd.
Since GeoDMS version 7408, the gdalwrite.vect StorageManager can be used to write geopackages.
container snapshot_result : StorageName = "%LocalDataProjDir%/snapshot_gpkg_20220101.gpkg" , StorageType = "gdalwrite.vect" , StorageReadOnly = "False" { unit<uint32> ligplaats := selectie/ligplaats { attribute<string> identificatie := selectie/ligplaats/identificatie; attribute<geometries/rdc> geometry (poly) := selectie/ligplaats/geometry_mm[geometries/rdc]; attribute<string> nummeraanduiding_id := selectie/ligplaats/nummeraanduiding_id; container meta { attribute<string> status (ligplaats) := selectie/ligplaats/meta/status, DisableStorage = "True"; attribute<ligplaats_status_code> statusCode (ligplaats) := rlookup(Status, ligplaats_status_code/values); } } unit<uint32> ligplaats_status_code := unique(ligplaats/meta/status) { attribute<uint32> code := id(.); attribute<string> label := values; } ... }
This example shows a part of the configuration of a BAG snapshot written to a geopackage.
All domain units configured become tables in the geopackage, and all direct or indirect subitems with the same domain unit are stored as attributes in these tables.
By configuring the DisableStorage = "True" property for the meta status attribute, the attribute is not written to the geopackage.
GeoDMS ©Object Vision BV. Source code distributed under GNU GPL-3. Documentation distributed under CC BY-SA 4.0.