GeoPackage

Spectrum unterstützt den GeoPackage-Datenanbieter für Windows und Linux. Bei GeoPackage handelt es sich um eine Geodatenerweiterung zur SQLite-Datenbanktechnologie. Der von OGC eingeführte GeoPackage-Standard ermöglicht mehrere Tabellen, ihre Beziehungen und relevante Metadaten eigenständig in einer einzelnen Datei. Dies ist nützlich bei großen Datasets und zur Umgehung von Begrenzungen zu Zeichensatz- und Datengröße in MapInfo Professional.

Spectrum Spatial behandelt GeoPackage als eine les- und beschreibbare Datenquelle.

Compliance mit der GeoPackage-Spezifikation

Die GeoPackage-Unterstützung von Spectrum Spatial wurde so konform mit der OGC-Spezifikation wie möglich entworfen. Andere Implementierungen, die GeoPackage (zum Lesen, Schreiben oder Erstellen) unterstützen, weisen möglicherweise nicht dieselbe Konformität auf.

Spectrum Spatial betrachtet eine GeoPackage-Tabelle als konform, wenn Folgendes zutrifft:

  • Enthält eine Tabelle „gpkg_spatial_ref_sys“ wie in Anforderung 10 der OGC-Spezifikation angegeben,
  • Enthält eine Tabelle „gpkg_contents“ wie in Anforderung 13 angegeben,
  • Enthält Tabellen oder aktualisierbare Ansichten, die Vektorfeatures enthalten, und diese Feature-Tabellen oder -ansichten enthalten eine Spalte mit Spaltentyp INTEGER und PRIMARY KEY AUTOINCREMENT wie in Anforderung 29 angegeben,http://www.geopackage.org/spec/#feature_user_tables
  • Implementiert räumliche Indizes in Geometriespalten der Feature-Tabelle wie in den Anforderungen 70, 71, und 72 angegeben.
    Anmerkung: Ein RTree-Index ist nicht erforderlich, wird jedoch zur Vermeidung von Leistungsproblemen empfohlen.

Zugreifen auf Daten in GeoPackage

Eine GeoPackage-Datei verfügt über die Erweiterung .gpkg und ist im Grunde eine Datenbank mit Tabellen. Erstellen Sie über Spatial Manager eine benannte Dateisystemverbindung, um mit Spectrum Spatial auf GeoPackage-Daten zuzugreifen. Eine Verbindung zu einer GeoPackage-Datei ist ein Pfad, ähnlich wie bei TAB- und Shape-Dateien. Sobald Sie die Verbindung erstellt haben, können Sie benannte Tabellen erstellen, die sie verwenden. Sie können benannte GeoPackage-Tabellen genauso verwenden wie benannte Tabellen anderer Datenanbieter. Eine GeoPackage-Tabelle sollte zur Verwendung in Spectrum Spatial über einen räumlicher Index verfügen. Beispieldaten für GeoPackage sind im Ordner /Samples/NamedTables in der Datenbank (WorldGeoPackageTable) verfügbar. Die ältere Version von Map Uploader (für MapInfo Pro-Versionen vor 16.0) unterstützt GeoPackage nicht. Zum Öffnen der GeoPackage-Datenbank benötigen Sie sowohl Lese- als auch Schreibberechtigungen für den übergeordneten Ordner einer GeoPackage-Datei.

Unterstützte Datentypen

Der GeoPackage-Datenquellenanbieter folgt beim Zuordnen von Nicht-Geodaten-JDBC-Typen zum Typsystem von Spectrum Spatial denselben Regeln wie generisches JDBC. Die Tabelle „gpkg_geometry_columns“ wird für den Namen der Geodatenspalte und des Koordinatensystems herangezogen.

Die Geometrie- und Geografiedatentypen sind die Geodaten-Datenäquivalente zu den von Spectrum Spatial unterstützten Datentypen: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon und GeometryCollection.

Primärschlüssel

Die GeoPackage-Spezifikation identifiziert die Tabellenspalte, die als Primärschlüssel dient. Diese Spalte wird als schreibgeschützt gekennzeichnet, da es sich um eine automatisch inkrementierte Spalte handelt.

Unterstützung von Einfügen, Aktualisieren und Löschen

Bei einem GeoPackage-Datenquellenanbieter werden Einfüge-, Aktualisierungs- und Löschvorgänge unterstützt. Der Write Ahead Logging-Protokollierungsmodus (WAL) von SQLite wird verwendet, um gleichzeitiges Lesen und Schreiben für GeoPackage zu ermöglichen. Dabei gelten folgende Einschränkungen:

  • Alle Prozesse, die eine Datenbank verwenden, müssen auf demselben Computer ausgeführt werden. WAL funktioniert nicht über ein Netzwerkdateisystem hinweg.
  • Schreibgeschützte WAL-Datenbanken können nicht geöffnet werden. Der Prozess, in dem die Datenbank geöffnet wird, muss über Schreibberechtigung für die WAL-Index-Datei „-shm“ im gemeinsam genutzten Arbeitsspeicher verfügen, die der Datenbank zugeordnet ist. Falls diese Datei nicht vorhanden ist, benötigt der Prozess Schreibberechtigung für das Verzeichnis, in der sich die Datenbankdatei befindet.

Weitere Informationen zu WAL, einschließlich Vorteile und Einschränkungen, finden Sie unter http://www.sqlite.org/wal.html.

MI SQL-Optimierungen

GeoPackage unterstützt dieselben Nicht-Geodatenfunktionen und -operatoren wie der Datenquellenanbieter für generisches JDBC zusammen mit dem Geodatenoperator EnvelopesIntersect.

Weitere Informationen finden Sie im Anhang Delegierung an Datenquellenanbieter.

Volatilität

Bei GeoPackage bezieht sich die Volatilität auf alle Änderungen am Tabellenschema wie Hinzufügen oder Entfernen von Spalten oder eine Veränderung des Index einer Spalte. Bei einer Änderung entfernt Spectrum Spatial die Metadaten zur Tabelle aus dem Cache und lädt sie erneut, bevor der Datenzugriffsvorgang fortgesetzt wird. Weitere Informationen finden Sie unter Volatilität von Datenquellen.

GeoPackage und MAPINFO_MAPCATALOG

Der GeoPackage-Datenanbieter in Spectrum Spatial verwendet keinen MAPINFO_MAPCATALOG. Das hat verschiedene Auswirkungen:
  • Geometrien, die aus einer GeoPackage-Tabelle gelesen werden, verfügen nicht über einen Stil und werden für eine Karte als schwarzweißer Layer gerendert. Wenn Sie Stile benötigen, verwenden Sie ein Überschreibungsdesign.
  • Aus einer GeoPackage-Tabelle können keine XY-Tabellen erstellt werden. Erstellen Sie eine auf generischem JDBC basierende benannte Tabelle, um aus einer Tabelle in einer SQLite-Datenbank eine XY-Tabelle zu erstellen. Folgen Sie den Anweisungen unter Erstellen einer Verbindung und erstellen Sie beispielsweise eine Verbindung in Spatial Manager mit einer Zeichenfolge wie jdbc:sqlite:c:\data\sample.gpkg. Erstellen Sie dann eine XY-Tabelle, indem Sie den Anweisungen unter Erstellen einer XY-Tabelle folgen.

Unterstützung für Koordinatensysteme

GeoPackage unterstützt ein kartesisches räumliches Referenzsystem (SRS), wenn die SRID gleich „-1“ ist, und ein geografisches SRS, wenn die SRID gleich „0“ ist. Wenn eine GeoPackage-Tabelle eine SRID von „-1“ aufweist, verwenden Sie Spaltenhinweise, um ein kartesisches SRS in der benannten Tabelle zu definieren. Wenn die SRID gleich „0“ ist, verwenden Sie Spaltenhinweise, um ein geografisches SRS zu definieren. Wenn Sie diese Spaltenhinweise nicht oder falsch festlegen, ruft das System einen Ausnahmefehler hervor. Die Spaltenhinweise müssen manuell zur Definition einer benannten Tabelle hinzugefügt werden. Verwenden Sie WebDAV oder einen Texteditor, um ein Attribut <DBDataSourceMetadata> zur XML-Datei hinzuzufügen:

Für ein kartesisches SRS:

<DBDataSourceMetadata>
  <FeatureGeometryAttribute srsName="epsg:3857">geom</FeatureGeometryAttribute>
</DBDataSourceMetadata>
Für ein geografisches SRS:
<DBDataSourceMetadata>
  <FeatureGeometryAttribute srsName="epsg:4326">geom</FeatureGeometryAttribute>
</DBDataSourceMetadata