Verwenden Sie GeoPackage anstelle von SpatiaLite und umgekehrt?

36

Ich verwende jetzt QGIS 2.18, das die Unterstützung des GeoPackage-Formats beinhaltet.

Ich weiß, dass GeoPackage wie ein Ersatz für Shapefile ist, aber nicht ganz so, da GeoPackage Datenbankfähigkeiten hat. Gleichzeitig ist GeoPackage kein vollständiger Ersatz für SpatiaLite, da es keine räumlichen Abfragen und Funktionen enthält. Außerdem unterstützt Spatialite GeoPackage.

Wann ist es im Kontext der QGIS-Bearbeitung sinnvoll, GeoPackage zu verwenden (und über SpatiaLite für Spatial SQL-Aufgaben auf GeoPackage zuzugreifen), und wann ist es besser, nur Spatialite zu verwenden?

Pahbloo Marks
quelle
1
Diese Frage interessiert mich auch. Beachten Sie, dass die Unterstützung für Geopakete derzeit aufgrund eines Sperrfehlers nach der ersten Bearbeitung eingeschränkt ist.
hilpers
Aber das wurde schon gelöst ?! Probleme mit dem 2.18 sind nicht aufgetreten.
Matte
Leider habe ich 2.18.3 Sie mit
hilpers
Ich habe es mit 2.18.3 mit der Prozedur getestet, die im alten Bug-Tracker geschrieben wurde und konnte es nicht reproduzieren. Unter welchen Umständen hast du das Problem?
Matte
Ich habe auch den Sperrfehler nach der ersten Bearbeitung mit GeoPackage, aber nur, wenn ich den neuen DWG / DXF-Import in 2.18.3 verwende. Ich kann die DWG erfolgreich importieren und das erstellte GeoPackage zunächst bearbeiten (z. B. um es mit dem Vector Bender-Plugin zu georeferenzieren). Sobald ich das QGIS-Projekt schließe und wieder öffne, ist die Schaltfläche zum Bearbeiten des Umschalters ausgegraut und GeoPackage kann nicht mehr bearbeitet werden.
Rob Willson

Antworten:

33

Ein kleiner Vergleich zwischen GeoPackage und SpatiaLite in QGIS. Momentan ist es nicht wirklich produktiv, GeoPackage mit QGIS zu verwenden. Kann sich aber ziemlich schnell ändern (siehe Ergänzungen!).

Einige Ergänzungen zu neuem QGIS 2.99-Alias ​​QGIS 3, November 2017 (ebenfalls im Vergleich hinzugefügt): GeoPackage funktioniert jetzt in QGIS 3 nahezu problemlos. Es sind einige kleinere Probleme aufgetreten, die möglicherweise die QGIS-Entwicklerversion betreffen. Auch das problematischste Problem für SpatiaLite ist gelöst. Spalten können jetzt ohne zusätzliche Problemumgehungen gelöscht werden. Beide unterstützen das Schreiben von Rastern über die GUI immer noch nicht, was kein großes Problem darstellt, da Raster in einer Datenbank nicht die Hauptabsicht sind. Beide Formate sind wirklich gute Arbeitsformate. Der Fokus für GeoPackage liegt auf dem Transportformat und für SpatiaLite auf einem einfachen dateibasierten Datenbanksystem mit vielen Tools zum Aufbau eines lokalen Datenspeichers (da es sich eher um ein RDBMS als um ein Dateiformat handelt).

Beide haben:

  1. Transaktion
  2. SQL und Views (Views sind jedoch in der verwendeten Software unterschiedlich implementiert)
  3. "All in One" -Vektorebenen, Symbologie und Text, Raster
  4. Attributtabellen nahezu uneingeschränkt gegenüber Shapefile
  5. benötigen von Zeit zu Zeit ein VACUUM (datenbankspezifische Speicherung)
  6. die meisten Geometrietypen (wie Kurven)

GeoPackage:

  1. ist ein OGC-Standard, der auf SQLite basiert. Dies bedeutet, dass die Implementierung in einer anderen Software konsistenter sein sollte. Beispielsweise könnte die Symbologie in Zukunft in QGIS und ArcMap funktionieren, wenn SLD-Stile verwendet werden
  2. ziemlich jung (2014), einige Probleme mit QGIS bis 2.18 (Update: gute Unterstützung in QGIS 3)
  3. Ermöglicht das einfache Entfernen von Spalten in QGIS für "normale" Benutzer, die sich SpatiaLite widersetzen
  4. Momentan funktioniert DB-Manager nicht sehr gut damit und die Raster-Unterstützung beschränkt sich auf das Lesen eines einzelnen integrierten Rasters (kein Schreiben in das Raster) (mit QGIS 2.18.3) (Update: DB-Manager funktioniert jetzt gut mit Geopackage)
  5. Ansichten funktionieren nicht in QGIS, sind aber über die virtuelle Ebene kein allzu großes Problem, wenn sie nicht für die gemeinsame Nutzung zwischen vielen Benutzern verwendet werden.
  6. Geoverarbeitungswerkzeuge erlauben nicht das Anhängen an vorhandene Dateien (ersetzt nur die gesamte Datei) (Update: funktioniert jetzt)

SpatiaLite:

  1. ist eine Erweiterung zu SQLite, die in der GI-Software unterschiedlich implementiert ist (hauptsächlich aufgrund von Treiber- und Versionsproblemen)
  2. viel älter und bisher besser in QGIS integriert
  3. In QGIS können Sie keine Spalten ohne eine SQL-Abfrage löschen, die nicht kompliziert ist, aber für einige Benutzer bereits zu viel "Code" (Update: QGIS 3 macht das jetzt)
  4. Ziemlich große Datei, wenn nur eine Hand voller Geometrien vorhanden ist, die nicht als Transportformat geeignet ist, sondern für die lokale Datenbankspeicherung (sie beginnt mit etwa 5 MB).
  5. Viele zusätzliche Tools (Ansichten, können Straßennetze erstellen, viele Import- / Exportformate, ST_Queries und mehr)
Matte
quelle
Planen Sie, GeoPackage oder SpatiaLite nur mit QGIS oder auch mit anderer Software zu verwenden? SpatiaLite unterstützt auch alle diese gaia-gis.it/gaia-sins/spatialite-sql-latest.html Standalone ohne QGIS.
user30184
Ich benutze hauptsächlich SpatiaLite zusammen mit QGIS, aber auch mit der SpatiaLite-GUI. Ich stelle es in meinen Schulungen für QGIS vor. Der einzige Punkt ist das Problem des Löschens von Spalten für die Anfänger. Ich füge es nicht in die ArcGIS-Schulungen ein, da dort die FileGeodatabase vorhanden ist, die in einigen Behörden obligatorisch ist (in den 10%, in denen es nicht das Shapefile ist, das noch auf dem neuesten Stand ist ...). Ich habe angefangen, GeoPackage in den fortgeschrittenen QGIS-Kursen anzukündigen, aber mit den oben beschriebenen Nachteilen. Da GDAL aber eine gute Implementierung hat, kann es nicht lange dauern, bis QGIS die benötigten Schaltflächen hat.
Matte
Wie Sie sagen, handelt Ihr Vergleich von der Verwendung von QGIS. Ich möchte betonen, dass es sehr QGIS-spezifisch ist, zu beurteilen, ob SpatiaLite oder GeoPackage durch den Fall "Drop Column" besser ist. SQLite selbst unterstützt diesen Vorgang nicht direkt sqlite.org/lang_altertable.html . Dieselben Problemumgehungen funktionieren für SpatiaLite und GeoPackage, auch wenn einige Softwareprogramme die Schaltflächen möglicherweise übersehen.
user30184
1
Ich habe es in den Kontext der ursprünglichen Frage gestellt, in der es um QGIS ging. Der Punkt mit der Spalte war ein Beispiel, wo ich hoffe, dass der Standard zu einer konsistenteren Verwendung in Programmen führen wird, da dies ein Thema für den "normalen" Benutzer ist. Ich bin mir nicht sicher, ob dies mit SpatiaLite möglich sein wird, da der Integrationsgrad auch nach einigen Jahren noch so unterschiedlich ist. Am Ende wird es für mich zu dem Punkt kommen, an dem es sich möglicherweise um ein neues standardisiertes Transportformat (GeoPackage) handelt. SpatiaLite ähnelt viel eher einem GIS mit seinen integrierten Funktionen (ST-Abfragen, viele Datenimportoptionen, Netzwerk ...).
Matte
Sowohl GeoPackage als auch SpatiaLite basieren auf SQLite.
Matthias Kuhn