Vairāk

Vektoru slāņu rediģēšana

Vektoru slāņu rediģēšana


Es vēlos rediģēt un noņemt qgsfeatures qgsvectorlayer. Vectorlayer satur postgis tabulu.

QgsVectorDataProvider :: skillsString () atgriež sekojošo virkni: Pievienot funkcijas, Pievienot atribūtus, Dzēst atribūtus, Ātra piekļuve funkcijām ID, Vienkāršot ģeometrijas, Vienkāršot ģeometrijas ar topoloģisko validāciju

Tāpēc izskatās, ka varu pievienot tikai jaunas funkcijas, nevis rediģēt/dzēst jau izveidotās. Kāpēc?


Tam jums jāizmanto atribūtu tabula, kurā varat redzēt visus pievienotās tabulas datus. Detalizētu ievadu skatiet šeit. Apakšā redzat marķiera simbolu, kuru varat izmantot, lai rediģētu datus.


Jūs varat izdzēst līdzekļus, ja zināt to ID, ielādējot slāni audeklā no DB pārvaldnieka:

Tad no Python konsole, tu vari izmantot:

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

Tad no DB pārvaldnieks> Tabula, izvēlieties Palaidiet vakuuma analīzi rīks datu tabulas atjaunināšanai:

Pēc tam jums vajadzētu redzēt atjaunināto rindu sarakstu:

Ceru tas palīdzēs!


Nu izskatās, ka esmu atradis atbildi uz savu jautājumu.

Postgres tabulām, kas ģenerētas, izmantojot osm2pgsql, nav primārās atslēgas. Postgis nespēj rediģēt/dzēst rindas šādās tabulās, bet ļauj pievienot jaunas rindas.

Primārās atslēgas pievienošana manam galdam atrisināja problēmu.