Speichern mehrerer Ebenen aus QGIS in der SpatiaLite-Datenbank?

10

Jedes Mal, wenn ich eine Ebene aus QGIS als Spatialite speichere, besteht sie darauf, eine neue Datenbank zu erstellen (wenn Sie eine vorhandene Datenbank auswählen, werden Sie gefragt, ob Sie sie abbrechen oder ersetzen möchten).

Ich möchte alle Ebenen eines Projekts zur Verteilung in eine einzige Spatialite-Datenbank packen.

Ich denke, dass ich native SQLite-Tools verwenden kann, um die Ebenen aus den einzelnen Dateien zu kombinieren, aber es wäre schön, dies nicht tun zu müssen.

Russell Fulton
quelle

Antworten:

11

Sie können mit eine leere SpatiaLite-Datenbank erstellen Layer > Create Layer > New SpatiaLite Layer. Sobald Sie dies getan haben, wird es im DB Manager angezeigt (ein mitgeliefertes Plugin; aktivieren Sie es über den Plugin-Manager, wenn es deaktiviert ist). Wenn Sie eine vorhandene Datenbank haben, zu der Sie Ebenen hinzufügen möchten, fügen Sie diese alternativ mit Layer > Add Layer > Add Spatialite Layer( nicht mit Add Vector Layer) hinzu. Dadurch wird die SpatiaLite-Datenbank im DB Manager angezeigt

Nachdem Sie einen der oben genannten Schritte ausgeführt haben, können Sie mit dem DB-Manager jeden in QGIS geladenen Layer beliebigen Ursprungs in den SpatiaLite-DB importieren.

Ich halte dies für eine bessere Option als die Verwendung von Qspatialite, da DB Manager ein zentrales QGIS-Plugin ist und vom QGIS-Team verwaltet wird.

dericke
quelle
Wie importiere ich mit dem DB Manager einen Layer in die SpatialLite-Datenbank? Ich habe es satt, aber wenn ich einfach das Menü "Ebene / Datei importieren" verwende, gehen die Geometrien verloren.
Bushroot
7

Probieren Sie das qspatialite-Plugin aus ( https://plugins.qgis.org/plugins/QspatiaLite/ ).

(Erstellen Sie eine leere Datenbank, jetzt können Sie alle Ebenen auswählen und auf einmal hinzufügen. Siehe Screenshot 1)

Speichern von Ebenen in db

Ebenen von db abrufen

Kurt
quelle