<p dir="ltr">Ciao Luigi...Si, hai ragione ho continuato per sbaglio a inviarti messaggi solo a te e non all'intero gruppo...<br>
Dovete scusarmi e avere pazienza, sono alle prime armi.</p>
<p dir="ltr">Comunque avevo il problema di non sapere come si potesse connettere il plugin che sto sviluppando con il PyQT al mio Geo-DB realizzato in PostGIS.</p>
<p dir="ltr"> Poi grazie ai consigli di Luigi la connessione al PostGis da applicazione WindowDialog realizzata con il QT creator e il PyQgis, sono riuscito a farla e funziona dato che sono riuscito anche a fare una prima semplice query di interrogazione.</p>
<p dir="ltr">In realta' mi sembra che le query SQL si possano fare normalmente e anche a livello medio-alto. Volendo le si puo' anche autogenerare dai legami che puoi fare tra le tabelle all'interno del PostGIS stesso (in cui hai il tuo Geo-DB chiaramente). Funziona un po' come Access e dal punto di vista della programmazione a oggetti e' molto simile al Visual Studio.NET, con la differenza che sia quest'ultimo che Access costano un botto e non sono specifici per gestire dati geo-spaziali mentre il PostgreSQL con ext. PostGIS lo e', oltre che ad essere chiaramente un prodotto Open Source ;-)!!!</p>
<p dir="ltr">Quindi volendo puoi anche fare i legami tra i campi delle tue tabelle in PostGis, vedere il codice SQL autogenerato, copiarlo e salvarlo in una normale variabile "string" nel tuo codice di sviluppo PyQgis del tuo plugin o applicativo e poi lanciarlo realizzando un semplice "button" nell'interfaccia grafica WindowDialog del QT creator.</p>
<p dir="ltr">Il QT design che viene gia' scaricato nel "pacchetto Osgeo" e che dovrebbe essere specifico e customizzato sul QGis invece mi sembra paradossalmente piu' complesso da usare rispetto l'associazione QT creator + Notepad++...</p>
<p dir="ltr">Sarebbe bello che in una futura nuova versione del QGis ci sia gia' una piattaforma interna di sviluppo, con le API e le librerie fondamentali gia' importate di default. Una sorta di "VisualPyQgis Creator"....</p>
<p dir="ltr">Pero' non so se e' una cosa fattibile oppure molto complessa e articolata..</p>
<p dir="ltr">E' un'idea.</p>
<p dir="ltr">Grazie ancora, per ora problema risolto!</p>
<p dir="ltr">Andrea Gagna.</p>
<div class="gmail_quote">Il 29/feb/2016 14:54 "Andrea Gagna" <<a href="mailto:g.andre87@gmail.com">g.andre87@gmail.com</a>> ha scritto:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Comunque mi sembra che Io ho scritto sulla lista utenti.</p>
<p dir="ltr">Comunque ok ti ringrazio; ho visto anche cosa fa il QgsFeatureRequest ed e' interessante ma non risolve la mia necessita', che e' quella di poter scrivere Query in SQL...</p>
<p dir="ltr">A questo link della documentazione ufficiale mette le espressioni QGis SQL...ma non le capisco perche' non e' un normale SQL...<br>
Link: <a href="http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/expressions.html#expressions" target="_blank">http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/expressions.html#expressions</a></p>
<p dir="ltr">Quindi non capisco bene...</p>
<p dir="ltr">Io capisco che ci siano materiali, tutorial infiniti, etc..ma penso sia normale che il 90% delle domande che un utente non esperto fa qui siano gia' state risolte...(anche se la mia e' solo parzialmente risolta.)</p>
<p dir="ltr">Il problema per chi come me non e' esperto e' anche capire come muoversi.</p>
<p dir="ltr">Grazie comunque. </p>
<div style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">1) scrivere anche sulla lista utenti... cosi' chi ha lo stesso<br>
problema trova le risposte senza fare mille volte le stesse domende<br>
<br>
2) la where filtra gia' lato server... cosa che non conviene se vuoi<br>
layer che cambino con la queri... ti consiglio di usare<br>
QgsFeatureRequest come da:<br>
<a href="http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html" rel="noreferrer" target="_blank">http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html</a><br>
<br>
in definitiva una volta che hai il layer, che sia su file o remoto a<br>
qgis non fa ne caldo ne freddo (+o-)<br>
<br>
inoltre ci sono una quintalata di plugin per postgres/postgis ben<br>
fatti... puoi leggere il codice direttametne da quelli (ma leggi prima<br>
il cookbook)<br>
ci sono anceh libri che ti guidano passo passo.<br>
<br>
non ho studiato il codice del plugin di postgres su Ferraguti... ma mi<br>
sembra da studiare<br>
<br>
una cosa basica... leggere il manuale! e verificare che la stessa<br>
domanda non sia stata fatta e risolta su <a href="http://gis.stackexchange.com" rel="noreferrer" target="_blank">gis.stackexchange.com</a><br>
Luigi Pirelli<br>
<br>
**************************************************************************************************<br>
* Boundless QGIS Support/Development: lpirelli AT boundlessgeo DOT com<br>
* LinkedIn: <a href="https://www.linkedin.com/in/luigipirelli" rel="noreferrer" target="_blank">https://www.linkedin.com/in/luigipirelli</a><br>
* Stackexchange: <a href="http://gis.stackexchange.com/users/19667/luigi-pirelli" rel="noreferrer" target="_blank">http://gis.stackexchange.com/users/19667/luigi-pirelli</a><br>
* GitHub: <a href="https://github.com/luipir" rel="noreferrer" target="_blank">https://github.com/luipir</a><br>
* Mastering QGIS:<br>
<a href="https://www.packtpub.com/application-development/mastering-qgis" rel="noreferrer" target="_blank">https://www.packtpub.com/application-development/mastering-qgis</a><br>
**************************************************************************************************<br>
<br>
<br>
2016-02-29 11:48 GMT+01:00 Andrea Gagna <<a href="mailto:g.andre87@gmail.com" target="_blank">g.andre87@gmail.com</a>>:<br>
> Ciao Luigi,<br>
> Ti ringrazio per avermi rimandato alla parte di doc. ufficiale che ne parla.<br>
> Quindi devo scrivere questo codice con i riferimenti della mia connessione<br>
> PostGIS:<br>
><br>
> uri = QgsDataSourceURI()<br>
> # set host name, port, database name, username and password<br>
> uri.setConnection("localhost", "5432", "dbname", "johny", "xxx")<br>
> # set database schema, table name, geometry column and optionally<br>
> # subset (WHERE clause)<br>
> uri.setDataSource("public", "roads", "the_geom", "cityid = 2643")<br>
><br>
> vlayer = QgsVectorLayer(uri.uri(), "layer name you like", "postgres")<br>
><br>
> La cosa che non capisco bene e' la fase di filtro; in questo esempio lo fa<br>
> con un semplicissimo "WHERE" e ok.<br>
><br>
> Se volessi fare Query piu' complesse che formato posso usare? l'SQL non lo<br>
> posso fare se voglio fare dei JOIN ad esempio??<br>
><br>
> Grazie.<br>
><br>
> Il 29/feb/2016 11:27 "Luigi Pirelli" <<a href="mailto:luipir@gmail.com" target="_blank">luipir@gmail.com</a>> ha scritto:<br>
>><br>
>><br>
>> <a href="http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/loadlayer.html#vector-layers" rel="noreferrer" target="_blank">http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/loadlayer.html#vector-layers</a><br>
>> Luigi Pirelli<br>
>><br>
>><br>
>> **************************************************************************************************<br>
>> * Boundless QGIS Support/Development: lpirelli AT boundlessgeo DOT com<br>
>> * LinkedIn: <a href="https://www.linkedin.com/in/luigipirelli" rel="noreferrer" target="_blank">https://www.linkedin.com/in/luigipirelli</a><br>
>> * Stackexchange: <a href="http://gis.stackexchange.com/users/19667/luigi-pirelli" rel="noreferrer" target="_blank">http://gis.stackexchange.com/users/19667/luigi-pirelli</a><br>
>> * GitHub: <a href="https://github.com/luipir" rel="noreferrer" target="_blank">https://github.com/luipir</a><br>
>> * Mastering QGIS:<br>
>> <a href="https://www.packtpub.com/application-development/mastering-qgis" rel="noreferrer" target="_blank">https://www.packtpub.com/application-development/mastering-qgis</a><br>
>><br>
>> **************************************************************************************************<br>
>><br>
>><br>
>> 2016-02-29 11:13 GMT+01:00 Andrea Gagna <<a href="mailto:g.andre87@gmail.com" target="_blank">g.andre87@gmail.com</a>>:<br>
>> > Ciao a tutti;<br>
>> > Sto sviluppando un plugin del QGis che mi consenta "semplicemente", di<br>
>> > gestire il mio Geo-DB realizzato in PostGIS.<br>
>> ><br>
>> > Sono riuscito a creare la WindowDialog con il QT (e python come<br>
>> > linguaggio<br>
>> > per gli script) e a caricarla nel QGis.<br>
>> ><br>
>> > A questo punto gli ho aggiunto un oggetto Button che vorrei, quando<br>
>> > viene<br>
>> > cliccato, che ti permetta di connetterti al mio GeoDB di PostGis, cosi'<br>
>> > poi<br>
>> > da poter inserire nel mio plugin delle routine e script Python che<br>
>> > "lavorino" sugli attributi delle tabelle del mio Geo-DB.<br>
>> ><br>
>> > In particolare mi interessa poterci fare delle Query SQL, di "filtro"<br>
>> > essenzialmente e che esse possano chiaramente essere lanciate da un<br>
>> > utente<br>
>> > qualsiasi con dei click o flag sulla Window principale.<br>
>> ><br>
>> > Il problema e' che non trovo il codice pyQgis che mi consenta di fare la<br>
>> > connessione al Geo-DB.<br>
>> ><br>
>> > Ma secondo voi per fare un lavoro di questo tipo sarebbe piu' semplice<br>
>> > usare<br>
>> > il PyQGis direttamente dal QGis, nella console apposita o tramite<br>
>> > plugin?<br>
>> > Quindi lasciar perdere il PostGIS e agire sui layers caricati e presenti<br>
>> > nel<br>
>> > progetto e quindi fare delle query (sempre SQL suppongo) sulle loro tab<br>
>> > attributi??<br>
>> ><br>
>> > Grazie.<br>
>> ><br>
>> > Andrea Gagna<br>
>> ><br>
>> ><br>
>> > _______________________________________________<br>
>> > QGIS-it-user mailing list<br>
>> > <a href="mailto:QGIS-it-user@lists.osgeo.org" target="_blank">QGIS-it-user@lists.osgeo.org</a><br>
>> > <a href="http://lists.osgeo.org/mailman/listinfo/qgis-it-user" rel="noreferrer" target="_blank">http://lists.osgeo.org/mailman/listinfo/qgis-it-user</a><br>
>> ><br>
</div>
</blockquote></div>