[QGIS-it-user] Connessione PostGIS in App PyQT

Luigi Pirelli luipir a gmail.com
Lun 29 Feb 2016 04:09:13 PST


1) scrivere anche sulla lista utenti... cosi' chi ha lo stesso
problema trova le risposte senza fare mille volte le stesse domende

2) la where filtra gia' lato server... cosa che non conviene se vuoi
layer che cambino con la queri... ti consiglio di usare
QgsFeatureRequest come da:
http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html

in definitiva una volta che hai il layer, che sia su file o remoto a
qgis non fa ne caldo ne freddo (+o-)

inoltre ci sono una quintalata di plugin per postgres/postgis ben
fatti... puoi leggere il codice direttametne da quelli (ma leggi prima
il cookbook)
ci sono anceh libri che ti guidano passo passo.

non ho studiato il codice del plugin di postgres su Ferraguti... ma mi
sembra da studiare

una cosa basica... leggere il manuale! e verificare che la stessa
domanda non sia stata fatta e risolta su gis.stackexchange.com
Luigi Pirelli

**************************************************************************************************
* Boundless QGIS Support/Development: lpirelli AT boundlessgeo DOT com
* LinkedIn: https://www.linkedin.com/in/luigipirelli
* Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli
* GitHub: https://github.com/luipir
* Mastering QGIS:
https://www.packtpub.com/application-development/mastering-qgis
**************************************************************************************************


2016-02-29 11:48 GMT+01:00 Andrea Gagna <g.andre87 a gmail.com>:
> Ciao Luigi,
> Ti ringrazio per avermi rimandato alla parte di doc. ufficiale che ne parla.
> Quindi devo scrivere questo codice con i riferimenti della mia connessione
> PostGIS:
>
> uri = QgsDataSourceURI()
> # set host name, port, database name, username and password
> uri.setConnection("localhost", "5432", "dbname", "johny", "xxx")
> # set database schema, table name, geometry column and optionally
> # subset (WHERE clause)
> uri.setDataSource("public", "roads", "the_geom", "cityid = 2643")
>
> vlayer = QgsVectorLayer(uri.uri(), "layer name you like", "postgres")
>
> La cosa che non capisco bene e' la fase di filtro; in questo esempio lo fa
> con un semplicissimo "WHERE" e ok.
>
> Se volessi fare Query piu' complesse che formato posso usare? l'SQL non lo
> posso fare se voglio fare dei JOIN ad esempio??
>
> Grazie.
>
> Il 29/feb/2016 11:27 "Luigi Pirelli" <luipir a gmail.com> ha scritto:
>>
>>
>> http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/loadlayer.html#vector-layers
>> Luigi Pirelli
>>
>>
>> **************************************************************************************************
>> * Boundless QGIS Support/Development: lpirelli AT boundlessgeo DOT com
>> * LinkedIn: https://www.linkedin.com/in/luigipirelli
>> * Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli
>> * GitHub: https://github.com/luipir
>> * Mastering QGIS:
>> https://www.packtpub.com/application-development/mastering-qgis
>>
>> **************************************************************************************************
>>
>>
>> 2016-02-29 11:13 GMT+01:00 Andrea Gagna <g.andre87 a gmail.com>:
>> > Ciao a tutti;
>> > Sto sviluppando un plugin del QGis che mi consenta "semplicemente", di
>> > gestire il mio Geo-DB realizzato in PostGIS.
>> >
>> > Sono riuscito a creare la WindowDialog con il QT (e python come
>> > linguaggio
>> > per gli script) e a caricarla nel QGis.
>> >
>> > A questo punto gli ho aggiunto un oggetto Button che vorrei, quando
>> > viene
>> > cliccato, che ti permetta di connetterti al mio GeoDB di PostGis, cosi'
>> > poi
>> > da poter inserire nel mio plugin delle routine e script Python che
>> > "lavorino" sugli attributi delle tabelle del mio Geo-DB.
>> >
>> > In particolare mi interessa poterci fare delle Query SQL, di "filtro"
>> > essenzialmente e che esse possano chiaramente essere lanciate da un
>> > utente
>> > qualsiasi con dei click o flag sulla Window principale.
>> >
>> > Il problema e' che non trovo il codice pyQgis che mi consenta di fare la
>> > connessione al Geo-DB.
>> >
>> > Ma secondo voi per fare un lavoro di questo tipo sarebbe piu' semplice
>> > usare
>> > il PyQGis direttamente dal QGis, nella console apposita o tramite
>> > plugin?
>> > Quindi lasciar perdere il PostGIS e agire sui layers caricati e presenti
>> > nel
>> > progetto e quindi fare delle query (sempre SQL suppongo) sulle loro tab
>> > attributi??
>> >
>> > Grazie.
>> >
>> > Andrea Gagna
>> >
>> >
>> > _______________________________________________
>> > QGIS-it-user mailing list
>> > QGIS-it-user a lists.osgeo.org
>> > http://lists.osgeo.org/mailman/listinfo/qgis-it-user
>> >


More information about the QGIS-it-user mailing list