[Gfoss] QGis e vista PostGIS

Giuseppe Sucameli brush.tyler a gmail.com
Mar 11 Feb 2014 14:57:21 CET


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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20140211/3cee0896/attachment-0001.html>


Maggiori informazioni sulla lista Gfoss