[Gfoss] QGis e vista PostGIS

Marco Li Volsi marco.livolsi a gmail.com
Mar 11 Feb 2014 16:37:01 CET


Ciao Giuseppe.
In serata proverò a fare una copia della tabella (13 mln di punti), a 
ripristinare lo stato iniziale e a fare una vista come era prima.
Riguardo al tuo quesito sottoriportato... non mi ero accorto del 
"key=addrpid". Quel campo è un bigint sempre = 0, non è indicizzato e 
non e chiave primaria. Il campo "id" è la vera chiave ed è definita come 
tale con una constraint.
Salutos.

Il 11/02/2014 14:57, Giuseppe Sucameli ha scritto:
> Ciao Marco,
> ho notato che usi due campi id diversi:
>
> - qui stai usando "addrpid" come campo univoco della vista
>
>     dbname='miodb' host=192.168.1.4 port=5432 user='postgres'
>     password='xxxx' sslmode=disable key='addrpid' srid=4326 type=POINT
>     table="public"."v_poi_airport" (geom) sql= è un layer non valido;
>     non caricato
>
>
> mentre in quest'altra query verifichi che non vi siano valori 
> duplicati sul campo "id"
>
>     SELECT id, COUNT(id)
>       FROM v_poi_airport
>      GROUP BY id
>     ORDER BY COUNT(id) DESC;
>
>
> Probabilmente DBManager usa "id" e quindi tutto funziona, mentre 
> dall'interfaccia di caricamento del layer PostGIS in QGIS (che lista 
> tutti i campi utili) tu non selezioni il campo univoco da usare e QGIS 
> prende il primo che potrebbe a questo punto essere "addrpid".
>
> Facci sapere.
>
>
>
> 2014-02-03 22:39 GMT+01:00 Marco Li Volsi <marco.livolsi a gmail.com 
> <mailto:marco.livolsi a gmail.com>>:
>
>     Il log non è molto parlante
>     dbname='miodb' host=192.168.1.4 port=5432 user='postgres'
>     password='xxxx' sslmode=disable key='addrpid' srid=4326 type=POINT
>     table="public"."v_poi_airport" (geom) sql= è un layer non valido;
>     non caricato
>
>     Il 03/02/2014 20:30, Andrea Peri ha scritto:
>>     puoi postare l'errore che ti da' ?
>>
>>
>>     Il giorno 03 febbraio 2014 19:54, Marco Li Volsi
>>     <marco.livolsi a gmail.com <mailto:marco.livolsi a gmail.com>> ha
>>     scritto:
>>
>>         Ciao Andrea.
>>         Provato come dici tu... ma continua a dare errore.
>>
>>         Il 03/02/2014 00:32, Andrea Peri ha scritto:
>>>         Su db-manager non so che dirti.
>>>
>>>         Pero' puoi fare una controprova.
>>>
>>>         definisci sulla tabella principale un campo di tipo "serial"
>>>         il quale si auto-riempira' con dei progressivi.
>>>
>>>         alter table tabella1 add column id_2 serial;
>>>
>>>         definisci su tale colonna un indice unique:
>>>
>>>         create unique index idx-1 on tabella1(id_2);
>>>
>>>         Poi ridefinisci la vista aggiungendovi tale campo nuovo.
>>>
>>>         E infine prova a riaggiungere la vista a qgis.
>>>         A quel punto qgis trova il campo di tipo int4 che cercava
>>>         con tantodi indice unique e se accetta di aggiungerla alla
>>>         canvas, almeno
>>>         hai trovato dove sta' il problema.
>>>         Altrimenti è da una altra parte.
>>>
>>>         A.
>>>
>>>
>>>
>>>         Il giorno 03 febbraio 2014 00:10, Marco Li Volsi
>>>         <marco.livolsi a gmail.com <mailto:marco.livolsi a gmail.com>>
>>>         ha scritto:
>>>
>>>             Il campo PRIMARY KEY (... quello bigint per intenderci)
>>>             è presente sulla vista, purtroppo ho proprio bisogno di
>>>             un bigint... mi sono arrivati questi id interi composti
>>>             da 14 cifre. La tua risposta è coerente... rimane il
>>>             dubbio del perchè funzioni con DB Manager ?:-)
>>>
>>>             Il 03/02/2014 00:00, Andrea Peri ha scritto:
>>>>             A quello che ricordo, la regola di qgis è un campo di
>>>>             tipo int4 e bigint non gli va bene.
>>>>             Inoltre il campo deve essere presente tra quelli
>>>>             esposti nella vista, probabilmente lo è, ma dalla tua
>>>>             risposta sembrerebbe che esso è presente nella tabella
>>>>             LEFT non è in output sulla vista.
>>>>             :)
>>>>
>>>>             In ogni caso almeno fino a qgis 1.8 sicuramente un
>>>>             campo bigint non gli sarebbe andato bene.
>>>>             Non so se con qgis 2 è cambiato qualcosa, ma non credo..
>>>>
>>>>             qgis vuole tra i campi esposti in output nella vista un
>>>>             campo di tipo int4 con valori univoci e un indice
>>>>             unique (una pk va benissimo)
>>>>
>>>>             A.
>>>>
>>>>
>>>>
>>>>             Il giorno 02 febbraio 2014 23:47, Marco Li Volsi
>>>>             <marco.livolsi a gmail.com
>>>>             <mailto:marco.livolsi a gmail.com>> ha scritto:
>>>>
>>>>                 Ciao Ragà.
>>>>                 La tabella "LEFT" ha un campo id numerico di tipo
>>>>                 bigint ed ha una constraint di PRIMARY KEY.
>>>>                 Per quanto riguarda le varie LEFT JOIN, non fanno
>>>>                 altro che collegare chiavi primarie delle tabelle
>>>>                 "RIGHT" con le chiavi esterne nella tabella "LEFT".
>>>>                 Ho fatto eseguire sulla vista la seguente query e
>>>>                 non ha dato conteggi maggiori di 1.
>>>>                 SELECT id, COUNT(id)
>>>>                   FROM v_poi_airport
>>>>                  GROUP BY id
>>>>                 ORDER BY COUNT(id) DESC;
>>>>
>>>>                 Il 02/02/2014 23:14, Luca Mandolesi ha scritto:
>>>>>                 Mi ha battuto sul tempo Andrea... io nelle mie
>>>>>                 view setto sempre la query con Join per evitare
>>>>>                 tale problema. Se ad un punto corrispondo più
>>>>>                 record della tabella alfanumerica, puoi provare a
>>>>>                 dare dentro al provider di postgis come id singolo
>>>>>                 la chiave primaria e quindi unica della tabella 2.
>>>>>
>>>>>
>>>>>                 2014-02-02 Andrea Peri <aperi2007 a gmail.com
>>>>>                 <mailto:aperi2007 a gmail.com>>:
>>>>>
>>>>>                     ok.
>>>>>
>>>>>                     Un altro suggerimento:
>>>>>
>>>>>                     qgis per il postgres vole disporre di un campo
>>>>>                     che sia di tipo intero e con una primary-key.
>>>>>                     Oppure con un indice di tipo unique.
>>>>>                     Verifica che questa condizione sia verificata
>>>>>                     su uno dei campi che definisci nella vista.
>>>>>                     Stai attento che la condizione LEFTJOIN
>>>>>                     potrebbe falsare questa consizione provocando
>>>>>                     la ripetizione di records.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>                     Il giorno 02 febbraio 2014 22:58, Marco Li
>>>>>                     Volsi <marco.livolsi a gmail.com
>>>>>                     <mailto:marco.livolsi a gmail.com>> ha scritto:
>>>>>
>>>>>                         Grazie Andrea... ho provato ma non funge :-(
>>>>>
>>>>>                         Il 02/02/2014 22:43, Andrea Peri ha scritto:
>>>>>>                         Prova a modificare la view definendo la
>>>>>>                         geometria in quesot modo:
>>>>>>
>>>>>>                         ..,
>>>>>>                         tabella1.campogeometrico::geometry(Geometry,
>>>>>>                         3003) As geom
>>>>>>
>>>>>>                         Io ho scritto 3003 ipotizzando che il
>>>>>>                         dato sia in GaussBoaga, se è utm usa
>>>>>>                         25832 o altro codice epsg.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>                         Il giorno 02 febbraio 2014 21:47, Marco
>>>>>>                         Li Volsi <marco.livolsi a gmail.com
>>>>>>                         <mailto:marco.livolsi a gmail.com>> ha scritto:
>>>>>>
>>>>>>                             Buona sera a tutti Voi.
>>>>>>                             Ho un comportamento molto strano
>>>>>>                             riguardo al caricamento di una vista
>>>>>>                             geografica su PostGIS.
>>>>>>                             Ho creato una vista su PostGIS del tipo
>>>>>>                             CREATE OR REPLACE VIEW vista1
>>>>>>                                 SELECT tabella1.campo1,
>>>>>>                             tabella2.campo2,tabella1.campo2,...,
>>>>>>                             tabella1.campogeometrico
>>>>>>                                 FROM tabella1
>>>>>>                                 LEFT JOIN tabella2 ON ...
>>>>>>                                 WHERE tabella1.campo2 = valore;
>>>>>>                             La vista viene correttamente trovata
>>>>>>                             nella vista geometry_columns.
>>>>>>                             Ho provato a caricare questo layer
>>>>>>                             dal tasto "Aggiungi vettore PostGIS"
>>>>>>                             e mi viene restituito un messaggio di
>>>>>>                             alert. Verificando il registro degli
>>>>>>                             eventi il layer risulta non valido.
>>>>>>                             Se provo a caricare il layer dal DB
>>>>>>                             Manager tutto va come deve andare.
>>>>>>                             Il sistema in questione è QGIS
>>>>>>                             2.0.1-Dufour e POSTGIS="2.0.1 r9979"
>>>>>>                             GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel.
>>>>>>                             4.8.0, 6 March 2012" GDAL="GDAL
>>>>>>                             1.9.2, released 2012/10/08"
>>>>>>                             LIBXML="2.7.8" RASTER.
>>>>>>                             Qualcuno saprebbe dirmi se sbaglio
>>>>>>                             qualcosa?
>>>>>>
>>>>>>                             _______________________________________________
>>>>>>                             Gfoss a lists.gfoss.it
>>>>>>                             <mailto:Gfoss a lists.gfoss.it>
>>>>>>                             http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>>>>>>                             Questa e' una lista di discussione
>>>>>>                             pubblica aperta a tutti.
>>>>>>                             I messaggi di questa lista non hanno
>>>>>>                             relazione diretta con le posizioni
>>>>>>                             dell'Associazione GFOSS.it.
>>>>>>                             666 iscritti al 22.7.2013
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>                         -- 
>>>>>>                         -----------------
>>>>>>                         Andrea Peri
>>>>>>                         . . . . . . . . .
>>>>>>                         qwerty àèìòù
>>>>>>                         -----------------
>>>>>
>>>>>
>>>>>                         _______________________________________________
>>>>>                         Gfoss a lists.gfoss.it
>>>>>                         <mailto:Gfoss a lists.gfoss.it>
>>>>>                         http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>>>>>                         Questa e' una lista di discussione
>>>>>                         pubblica aperta a tutti.
>>>>>                         I messaggi di questa lista non hanno
>>>>>                         relazione diretta con le posizioni
>>>>>                         dell'Associazione GFOSS.it.
>>>>>                         666 iscritti al 22.7.2013
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>                     -- 
>>>>>                     -----------------
>>>>>                     Andrea Peri
>>>>>                     . . . . . . . . .
>>>>>                     qwerty àèìòù
>>>>>                     -----------------
>>>>>
>>>>>                     _______________________________________________
>>>>>                     Gfoss a lists.gfoss.it <mailto:Gfoss a lists.gfoss.it>
>>>>>                     http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>>>>>                     Questa e' una lista di discussione pubblica
>>>>>                     aperta a tutti.
>>>>>                     I messaggi di questa lista non hanno relazione
>>>>>                     diretta con le posizioni dell'Associazione
>>>>>                     GFOSS.it.
>>>>>                     666 iscritti al 22.7.2013
>>>>>
>>>>>
>>>>
>>>>
>>>>                 _______________________________________________
>>>>                 Gfoss a lists.gfoss.it <mailto:Gfoss a lists.gfoss.it>
>>>>                 http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>>>>                 Questa e' una lista di discussione pubblica aperta
>>>>                 a tutti.
>>>>                 I messaggi di questa lista non hanno relazione
>>>>                 diretta con le posizioni dell'Associazione GFOSS.it.
>>>>                 666 iscritti al 22.7.2013
>>>>
>>>>
>>>>
>>>>
>>>>             -- 
>>>>             -----------------
>>>>             Andrea Peri
>>>>             . . . . . . . . .
>>>>             qwerty àèìòù
>>>>             -----------------
>>>
>>>
>>>             _______________________________________________
>>>             Gfoss a lists.gfoss.it <mailto:Gfoss a lists.gfoss.it>
>>>             http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>>>             Questa e' una lista di discussione pubblica aperta a tutti.
>>>             I messaggi di questa lista non hanno relazione diretta
>>>             con le posizioni dell'Associazione GFOSS.it.
>>>             666 iscritti al 22.7.2013
>>>
>>>
>>>
>>>
>>>         -- 
>>>         -----------------
>>>         Andrea Peri
>>>         . . . . . . . . .
>>>         qwerty àèìòù
>>>         -----------------
>>
>>
>>         _______________________________________________
>>         Gfoss a lists.gfoss.it <mailto:Gfoss a lists.gfoss.it>
>>         http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>>         Questa e' una lista di discussione pubblica aperta a tutti.
>>         I messaggi di questa lista non hanno relazione diretta con le
>>         posizioni dell'Associazione GFOSS.it.
>>         666 iscritti al 22.7.2013
>>
>>
>>
>>
>>     -- 
>>     -----------------
>>     Andrea Peri
>>     . . . . . . . . .
>>     qwerty àèìòù
>>     -----------------
>
>
>     _______________________________________________
>     Gfoss a lists.gfoss.it <mailto:Gfoss a lists.gfoss.it>
>     http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
>     Questa e' una lista di discussione pubblica aperta a tutti.
>     I messaggi di questa lista non hanno relazione diretta con le
>     posizioni dell'Associazione GFOSS.it.
>     666 iscritti al 22.7.2013
>
>
>
>
> -- 
> Giuseppe Sucameli

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20140211/818f38bf/attachment-0001.html>


Maggiori informazioni sulla lista Gfoss