Ebene zu vorhandenem Geopaket hinzufügen, das in QGIS nicht funktioniert?

9

Meine Organisation verwendet hauptsächlich ArcGIS und wir müssen Daten mit Auftragnehmern teilen. Ich habe kürzlich QGIS eingeführt (da eine unserer Anwendungen WKT zum Importieren von Geodaten verwendet und QGIS die Konvertierung verschiedener Formate in WKT sehr einfach macht). Daher habe ich mich mit dem Geopaketformat und QGIS als Lösung für den Datenaustausch befasst. Wir möchten damit aufhören Verwenden von Shapefiles aufgrund der Einschränkungen der Spaltenlänge.

Mit QGIS kann ich mit 'Speichern unter' ein Geopaket mit einer einzelnen Ebene erstellen, die Ebene mit QGIS lesen und bearbeiten. Mit ArcGIS kann ich sie jedoch lesen, wenn ich versuche, dem Geopaket mit DB Manager Ebenen hinzuzufügen (siehe Hinzufügen einer weiteren Ebene) Layer zu GeoPackage in QGIS? ) Ich erhalte die Meldung "Fehler 11 Verbindung zur Datenbank fehlgeschlagen". Ich habe definitiv eine Verbindung zum Geopaket in DB Manager, da ich eine Vorschau der vorhandenen Ebene anzeigen und eine Abfrage ausführen kann (dh * aus [Ebene] auswählen).

Dies scheint ein Fehler zu sein ( https://hub.qgis.org/issues/14981 ), der nicht behoben werden soll. Ich frage mich daher, ob andere Tools oder Plug-Ins verfügbar sind, damit wir Ebenen hinzufügen können zu einem Geopaket mit QGIS?

Ich verwende Windows 10, QGIS 2.14.9 und ArcGIS 10.4.

Hinweis: Während ich mit OGR2OGR eine Ebene zum Geopaket hinzufügen kann, kann ich von unseren Auftragnehmern, die Feldspezialisten und keine IT-Experten sind, kein "Buy-In" erhalten, um Befehlszeilentools anstelle eines GIS zu verwenden.

Hinweis 2: Ich habe die Verwendung von Spatialite vorerst reduziert, da QGIS keine mit ArcGIS erstellten Spatialite-Daten verarbeitet. (DB Manager führt zu einem Fehler: dbname = 'H: /Temp/SQLiteTesting/BaseData/ArcSpatialite/Aspatialite.sqlite' table = "arccatTrees" sql = ist eine ungültige Ebene - nicht geladen)

Colin
quelle
Es wäre schön, solch eine inkompatible Spatialite-Datenbank zu sehen und sie ein wenig zu untersuchen.
user30184

Antworten:

13

Mein Rat ist, auf> = 2.18.1 zu aktualisieren. In Version 2.18.1 wurde eine Funktion eingeführt, bei der Sie mit der rechten Maustaste auf eine Ebene klicken und Speichern unter und dann eine vorhandene GPKG-Datei auswählen. Jetzt können Sie entweder die gesamte Datei überschreiben oder die Ebene stattdessen als neue Ebene innerhalb des Geopakets anhängen. [1] (dh verwenden Sie nicht das DB Manager-Plugin, sondern nur die integrierte Layer-Funktion "Speichern unter".)

[1] Siehe https://github.com/qgis/QGIS/commit/85fbc4a7d902c12794fbbfeec5ce43d8a2c0887e

Ndawson
quelle
1
Danke ndawson. Ich habe einige Cusory-Tests mit 2.18.2 durchgeführt und die Funktion zum Speichern als hat für mich gut funktioniert. Ich habe festgestellt, dass sich DB Manager geändert hat und Spatialite und Geopaket in der Benutzeroberfläche getrennt hat. Ich habe den Import erneut mit und DB Manager versucht, aber es ist immer noch fehlgeschlagen. "Speichern unter" ist der richtige Weg! :-)
Colin
aber was ist mit dem Erstellen einer neuen Ebene? Wenn ich zum Beispiel Punkte zeichnen und zu einem vorhandenen Geopaket hinzufügen möchte, kann ich das nicht, denn egal wie ich die Ebene aufrufe, diese Funktionalität versucht, die gesamte Datenbank zu überschreiben
hilpers
1
Auch eine Option, um Ausgaben von Geoalgorithmen direkt im Geopaket zu speichern, wäre
großartig
Ich kann beispielsweise neue Polygon-Features zu vorhandenen GPGs mit Polygondaten hinzufügen. Aber ist es möglich, verschiedene Ebenen (Punkt, Polygon usw.) in einem GeoPackage zusammenzufügen? Das konnte ich nicht erreichen. (haben QGIS 2.18.13)
Juhele
Entschuldigung, das war mein Fehler. Ich habe vergessen, einen eindeutigen Namen für jede Ebene in GPG einzugeben, daher hat QGIS den GPG-Dateinamen für den Ebenennamen verwendet, und daher hat jede neue Ebene versucht, an die vorhandene Ebene anzuhängen, anstatt sie hinzuzufügen.
Juhele