Več

PyQGIS - naložite plast PostGIS kot ureljivo


Na platno zemljevida QGIS lahko naložim plast PostGIS, vendar gumb »Preklopi urejanje« postane »neaktiven«. Kako lahko naložim vektorsko plast za urejanje?

Spodaj navedena koda naloži plast PostGIS na platno zemljevida in gumb »Preklop urejanja« je »aktiven«, vendar ko zaženem spodnji skript v konzoli Python; ko pritisnem gumb "Preklopi urejanje", mi QGIS prikaže sporočilo z informacijami: "Začetek urejanja ni uspel: ponudnika ni mogoče odpreti za urejanje":

sql = "(SELECT * FROM tablename)" uri = QgsDataSourceURI () uri.setConnection ("localhost", "5432", "database", "postgres", "password") uri.setDataSource ("", sql, "geom "," "," gid ") vlayer = QgsVectorLayer (uri.uri ()," abc "," postgres ") QgsMapLayerRegistry.instance (). addMapLayer (vlayer) # ali naj bo plast nastavljena kot" aktivna "??? vlayer.dataProvider () vlayer.dataProvider (). zmogljivosti () vlayer.startEditing () iface.actionToggleEditing (). setEnabled (True)

Mi lahko kdo prosim svetuje, kako programsko naložiti plast, ki jo je mogoče urejati?


Za nalaganje datoteke oblike v QGIS in nastavitev plasti kot "editable" sem izvedel spodnjo kodo v konzoli Python:

LayerName = iface.addVectorLayer ("/Path/To/Your/Shapefile.shp", "name", "ogr") qgis.utils.iface.setActiveLayer (LayerName) qgis.utils.iface.actionToggleEditing (). Trigger ()

Za tabele PostGIS lahko ta objava v spletnem dnevniku pomaga pri nastavitvi stavka SELECT za uspešno nalaganje tabele PostGIS. Ko je plast naložena v QGIS, predvidevam, da bo spodnja koda omogočila/onemogočila urejanje:

qgis.utils.iface.setActiveLayer (LayerName) qgis.utils.iface.actionToggleEditing (). trigger ()

Primera PostGIS še nisem preizkusil. To je moja prva objava na GIS StackExchange, zato upam, da pomaga.


Ta objava bi lahko pomagala v vašem primeru. Vsaj imel sem težave z manjkajočim primarnim ključem PostGIS, zaradi česar QGIS ni mogel urejati podatkov, shranjenih v PostGIS.

PostGIS DB ni mogoče urediti z uporabo QGIS 2.10, deluje 2.8


Nepravilno nastavljate vir podatkov. Tudi niz sql ni potreben. Spodnja koda bi vam morala delovati.

sql = "" uri = QgsDataSourceURI () uri.setConnection ("gostitelj", "vrata", "dbname", "uporabnik", "geslo", QgsDataSourceURI.SSLdisable) uri.setDataSource ("shema", "ime_tabele", " geometry_column "," primary_key ") uri.setSrid (" srid ") vlayer = QgsVectorLayer (uri.uri ()," abc "," dbname ") QgsMapLayerRegistry.instance (). addMapLayer (vlayer)

Uporaba novega Microsoftovega nabora podatkov o gradbenih odtisih v QGIS

S pomočjo ogr2ogr sem ga pretvoril v geopaket. Deluje v redu.

Sklenil sem skript python, da sem odtise razrezal v okrožja in pravokotnike, ter jih zlahka postavil v QGIS.

NY NY mi je uspelo naložiti v QGIS tako, da sem ga najprej naložil v PostgreSQL prek ogr2ogr.

Preverite te prenosne računalnike ipython za nalaganje podatkov v PostGIS https://github.com/gboeing/ms-bldg-footprints

Ravno rešitev, ki sem jo iskal.

Poskušal sem brez sreče. Geojson moje države (MO) je prenesen iz githuba. Poskusil sem ga preprosto dodati na prazen zemljevid, da si ga ogledam, in je zamrznil. Potem sem poskusil ogr2ogr narediti oblikovno datoteko, spet mi je računalnik zamrznil. Zadnji poskus je, da ga uvozim v bazo Postgis.

ESRI ima plast ploščic, ki jo gostijo, če koga zanima. Se sprašujete, ali je podatkov preveč za računalnik?

Morate samo razdeliti velikost datoteke geojson in to bo delovalo. Uporabljam ga ves čas.

Pravite, da bi bilo treba plast ploščic odpreti v QGIS?

Videti je, da so ljudje razcepili projekt, da bi povečali velikost datotek. Nikoli nisem slišal za to in ves čas potrebujem odtise.

Za Nevado sem lahko brez težav prestavil podatke v oblikovno datoteko, toda Arizona je imela veliko več zgradb in mi je delala veliko težav. Konec tedna sem zamrznjen računalnik pustil prižganega in ko sem prišel v ponedeljek, je podatke uspešno pretvoril.

Ravnokar sem potegnil geosjon naravnost. Uporabil sem samo podnabor Floride in odpiranje je trajalo zelo dolgo.

Ne naložite celotne stvari. Samo na Floridi je 6 milijonov poli

Tukaj je povezava do tega, kako jih je Ian Dees obdelal na AWS m5.xlarge, očitno ni treba iti tako resno, a zanimivo, da vidim, kako je to obdelal v terminalu z nekim Pythonom.

To se mi zdi zanimivo, vendar malo nad mojim plačnim razredom. Imam veliko zvezno državo, Teksas, ki se mi je uspelo razdeliti z geojsplit. Ali obstaja preprost način, s katerim ga lahko zamenjamo s ključnim stikalom in ga razdelimo po geografski lokaciji, na primer omejevalni okvir? Ko ga razdelim od začetka, se mi zdi, da moram še vedno naložiti vse razdeljene datoteke, da dobim vse stavbe na območju, ki me zanima. Imam 100 datotek in pri približno 30 mi je začelo zmanjkati pomnilnika.

Ali obstaja enostaven način, da ga razčlenimo za poligone znotraj danega območja? Upajmo prek ukazne vrstice. Kot rezultati mačka ali grepa, ki se prikažejo v novi datoteki?


Poglej si posnetek: QGIS Python PyQGIS - Calculate Field Values Field Calculator (Oktober 2021).