[Gfoss] QGis e vista PostGIS

Marco Li Volsi marco.livolsi a gmail.com
Mar 4 Feb 2014 10:33:09 CET


Ciao.
Ho fatto la prova di eseguire la seguente query:
SELECT id, COUNT(id)
   FROM v_poi_airport
  GROUP BY id
ORDER BY COUNT(id) DESC;
Ma non ho avuto risultati maggiori di 1.
A questo punto penso di avere qualche problema sulla mia installazione :-(

Il 04/02/2014 08:12, francesco marucci ha scritto:
> ciao,
> adesso non so se sia il tuo caso, ma spesso questo problema è dato dal 
> fatto che il campo chiave della vista geometrica risultante non è univoco.
>
> prova a fare:
> select gid, count(*) from tabella1 group by gid having count(*) >1;
>
> dove gid per me è il campo chiave della tabella che contiene le geometrie.
>
> qGis ha bisogno che questo campo sia univoco e come dice giustamente 
> Andrea,
> un LEFT JOIN (in funzione dei dati) non mantiene (giustamente) 
> l'univocità.
> ad esempio, mapserver non ha questo "limite", e puo' mostrare un layer 
> da una vista senza avere una chiave primaria univoca.
> ma per qGis è ben diverso perche' per aprire la tabella degli 
> attributi ha bisogno di riferirsi ai singoli record e questo è dato 
> solamente dalla presenza di un campo i cui valori indentifichino 
> univocamente i singoli record.
>
> in questi casi io risolvo creando questo campo univoco per la vista 
> risultante, semplicemente con il numero del record:
>
> select row_number() OVER ()::integer AS gid, etc...
>
> ovviamente se ti puoi permettere il lusso di non avere nella vista 
> risultante il campo gid originario della tabella geometrica.
>
> spero di essere stato utile (e chiaro).
>
> saluti,
> francesco
>
>
>
>
>
>
>
>
>
>
>
> Il giorno 04 febbraio 2014 00:43, Andrea Peri <aperi2007 a gmail.com 
> <mailto:aperi2007 a gmail.com>> ha scritto:
>
>     In effetti dice veramente poco.
>     A lume di naso, direi che probabilmente hai qualcosa di
>     malfunzionante sul tuo qgis, ma dire cosa e come risolvere è
>     difficile.
>     Prova a sentire sulla ML di qgis se sanno darti qualche maggiore
>     informazione.
>     E' veramente curioso questo fatto che con DB-Manager non dia
>     problemi mentre con il provider di qgis li dia.
>
>     spiacente di non esserti di maggiore aiuto.
>
>     A.
>
>
>
>     Il giorno 03 febbraio 2014 22:39, Marco Li Volsi
>     <marco.livolsi a gmail.com <mailto:marco.livolsi a gmail.com>> ha
>     scritto:
>
>         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
>
>
>
>
>     -- 
>     -----------------
>     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
> 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

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


Maggiori informazioni sulla lista Gfoss