Mehr

Bearbeiten von Vektorebenen

Bearbeiten von Vektorebenen


Ich möchte qgsfeatures in qgsvectorlayer bearbeiten und entfernen. Vectorlayer enthält Postgis-Tabelle.

QgsVectorDataProvider::capabilitiesString() gibt den folgenden String zurück: Features hinzufügen, Attribute hinzufügen, Attribute löschen, Schneller Zugriff auf Features bei ID, Geometrien vereinfachen, Geometrien mit topologischer Validierung vereinfachen

Es sieht also so aus, als könnte ich nur neue Funktionen hinzufügen, nicht bereits erstellte bearbeiten/löschen. Wieso den?


Dazu müssen Sie die Attributtabelle verwenden, in der Sie alle Daten in der hinzugefügten Tabelle sehen können. Eine ausführliche Einführung finden Sie hier. Unten sehen Sie ein Marker-Symbol, mit dem Sie die Daten bearbeiten können.


Sie können Features löschen, wenn Sie deren ID kennen, indem Sie den Layer aus dem DB-Manager in den Canvas laden:

Dann von der Python-Konsole, können Sie verwenden:

layer = qgis.utils.iface.activeLayer() layer.dataProvider().deleteFeatures([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

Dann von der DB-Manager > Tabelle, wähle aus Vakuumanalyse ausführen Tool zum Aktualisieren der Datentabelle:

Sie sollten dann Ihre Liste der Zeilen aktualisiert sehen:

Hoffe das hilft!


So wie es aussieht habe ich die Antwort auf meine Frage gefunden.

Mit osm2pgsql generierte Postgres-Tabellen haben keinen Primärschlüssel. Postgis kann Zeilen in solchen Tabellen nicht bearbeiten/löschen, aber neue Zeilen hinzufügen.

Das Hinzufügen des Primärschlüssels zu meiner Tabelle hat das Problem gelöst.


Schau das Video: Adobe Fresco 2020 Grundkurs für Anfänger Deutsch