[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