QGIS, Postgis: Ist es möglich, eine neue Postgis-Ebene zu erstellen?

8

Situation:

Ich habe ein Postgis-Vektor-Lay, das viele Liniensegmente (die Merkmale) hat. Ich möchte eine Reihe neuer Ebenen erstellen, von denen jede eine Teilmenge der Merkmale der ursprünglichen Ebene enthält, und diese Ebenen auch wieder in Postgis speichern. Idealerweise mit den eigentlichen Funktionen nur einmal gespeichert.

Die einzige Möglichkeit, eine neue Ebene zu erstellen, anstatt eine aus einer Quelle zu laden, ist über Ebene-> Neu, die die Option Shapefile oder Spatialite bietet.

Auswählen der Formdatei Ich habe zuerst versucht, GID- und FID-Attribute für die neue Ebene anzugeben, aber SPIT beschwert sich über doppelte Feld-GID, wenn ich versuche, sie in Postgis zu laden.

Wenn ich keine Attribute für die neue Ebene erstelle, lädt SPIT sie gerne und dupliziert vermutlich alle Features.

Ich vermute, dies ist eher ein "Feature" als ein Versehen, denn wenn es möglich wäre, Features zwischen Ebenen zu teilen, was würde dann passieren, wenn ein Feature aufgeteilt würde? Wenn die Dinge richtig funktionieren würden, müssten alle Ebenen, auf die auf diese Funktion verwiesen wird, mit der neuen GID des neuen Teils aktualisiert werden.

Ist diese Interpretation richtig?

Russell

Russell Fulton
quelle
1
Es gibt keine gemeinsame Funktion. Sie haben nur zwei Kopien, teilen eine und die andere bleibt gleich.
Nathan W
Ich dachte, das wäre wahrscheinlich der Fall. Mein Problem ist, dass ich im Laufe der Jahre gründlich mit dem relationalen Modell und der Datennormalisierung indoktriniert wurde;)
Russell Fulton

Antworten:

4

Mit dem PostGIS Manager-Plugin können Sie neue Tabellen in einer PostGIS-Datenbank erstellen.

Sie können auch SQL-Anweisungen wie ausführen

CREATE TABLE new_table AS SELECT * FROM old_table

eine Tabelle duplizieren.

Unterdunkel
quelle
7

Dies ist eine etwas ältere Frage, und die richtige Antwort hat sich mit den neuesten Versionen von QGIS geändert.

PostGIS Manager ist veraltet und wird von DB Manager abgelöst, der sowohl für PostGIS als auch für SpatiaLite funktioniert.

DB Manager ist standardmäßig installiert und unter dem Database > DB ManagerMenüeintrag zugänglich . Dadurch wird das DB Manager-Fenster geöffnet.

Wählen Sie die Datenbank aus, zu der Sie auch eine Ebene hinzufügen möchten, und klicken Sie dann auf Table > Create table. Wenn Sie beim Klicken auf den Menüeintrag Tabelle keine Datenbank ausgewählt haben, ist die Option Tabelle erstellen nicht vorhanden.

Dadurch wird der Dialog zum Erstellen einer Tabelle geöffnet, der dem Dialogfeld, auf das Layer > New > New SpatiaLiteLayer zugreift, sehr ähnlich ist, jedoch ein anderes Layout aufweist.

Die Optionen sind größtenteils gleich, mit dem größten Unterschied, dass das Dialogfeld "Neue räumliche Ebene" den Zugriff auf das Dialogfeld "CRS angeben" ermöglicht, wodurch die Auswahl Ihres Koordinatensystems erleichtert wird. Für das Dialogfeld "Tabelle erstellen" müssen Sie die SRID-Nummer im Voraus kennen, um sie eingeben zu können.

Gregory Arenius
quelle