[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