[Gfoss] Ordine di visualizzazione dei poligoni con postgis

Salve,
vorrei sapere come posso modificare l'ordine di visualizzazione dei poligoni
in un layer postgis.
Spiego meglio: ho disegnato il poligono che mi definisce l'ingombro di un
muro. Poi ho disegnato il poligono del pavimento sul quale sta il muro. A
questo punto non vedo più il muro perchè è coperto dal pavimento. Come posso
fare per metterlo in primo piano? Devo assegnare scambiare tra loro il GID?

grazie
--
View this message in context: http://www.nabble.com/Ordine-di-visualizzazione-dei-poligoni-con-postgis-tp14709774p14709774.html
Sent from the Gfoss mailing list archive at Nabble.com.

mando ha scritto:

Salve,
vorrei sapere come posso modificare l'ordine di visualizzazione dei poligoni
in un layer postgis.
Spiego meglio: ho disegnato il poligono che mi definisce l'ingombro di un
muro. Poi ho disegnato il poligono del pavimento sul quale sta il muro. A
questo punto non vedo più il muro perchè è coperto dal pavimento. Come posso
fare per metterlo in primo piano? Devo assegnare scambiare tra loro il GID?

hum, in un database l'ordine dei risultati di una "select * form table" non è definito, il db può fare quello che gli pare, in genere segue l'ordine fisico dei record su file system.

Se vuoi essere sicuro di avere un determinato ordine ti consiglio di aggiungere un campo "layer" a cui darai valori numerici progressivi (tutti i pavimenti 0, tutti i muri 1, ecc), poi dovrai fare in modo
che il tuo software esegua la visualizzazione usando la query

select * from table order by layer

Spero sia di aiuto
Ciao
Andrea

aaime wrote:

Se vuoi essere sicuro di avere un determinato ordine ti consiglio di
aggiungere un campo "layer" a cui darai valori numerici progressivi
(tutti i pavimenti 0, tutti i muri 1, ecc), poi dovrai fare in modo
che il tuo software esegua la visualizzazione usando la query

select * from table order by layer

Che sia la query giusta non c'è dubbio, ma mi chiedevo come posso farlo con
QGIS.
Mi sa che l'unica soluzione è un plug-in in python. Altre strade non mi pare
vi siano, dal momento che il query builder non accetta l'ORDER BY. Strano
che non vi sia, perchè capita molto di frequente di avere sovrapposizioni di
poligoni nella realtà e, a meno di visualizzarli senza riempimento, non mi
pare vi siano altri metodi. Ogni confutazione è ben accetta.

_______________________________________________
Prenota la tua maglietta GFOSS.it:
http://wiki.gfoss.it/index.php/Gadgets
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@faunalia.com
http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.

--
View this message in context: http://www.nabble.com/Ordine-di-visualizzazione-dei-poligoni-con-postgis-tp14709774p14710489.html
Sent from the Gfoss mailing list archive at Nabble.com.

mando ha scritto:

aaime wrote:

Se vuoi essere sicuro di avere un determinato ordine ti consiglio di aggiungere un campo "layer" a cui darai valori numerici progressivi (tutti i pavimenti 0, tutti i muri 1, ecc), poi dovrai fare in modo
che il tuo software esegua la visualizzazione usando la query

select * from table order by layer

Che sia la query giusta non c'è dubbio, ma mi chiedevo come posso farlo con
QGIS.

Hem... la tua mail iniziale non indicava lo strumento. Purtroppo su qgis
non so aiutarti.

Mi sa che l'unica soluzione è un plug-in in python. Altre strade non mi pare
vi siano, dal momento che il query builder non accetta l'ORDER BY. Strano
che non vi sia, perchè capita molto di frequente di avere sovrapposizioni di
poligoni nella realtà e, a meno di visualizzarli senza riempimento, non mi
pare vi siano altri metodi. Ogni confutazione è ben accetta.

Beh, si potrebbe prendere la questione da un altro angolo. Muro e pavimento sono semanticamente differenti, quindi forse dovrebbero stare
in due layer (tabelle) separati. In tal caso il problema di risolve da se.

Ciao
Andrea

Hem... la tua mail iniziale non indicava lo strumento. Purtroppo su qgis
non so aiutarti.

Anche te hai ragione... sarà colpa del panettone...

Beh, si potrebbe prendere la questione da un altro angolo. Muro e
pavimento sono semanticamente differenti, quindi forse dovrebbero stare
in due layer (tabelle) separati. In tal caso il problema di risolve da se.

eh, il problema, trattandosi di archeologia, è che devo avere in un unico
layer gli strati che si andranno a sovrapporre in successione. Quindi avrò
pavimento, muro, strato di terra sul muro, un'altra pavimentazione, un nuovo
muro e così via...

mi sa che passare da python è l'unica.... forse

ciao e grazie
--
View this message in context: http://www.nabble.com/Ordine-di-visualizzazione-dei-poligoni-con-postgis-tp14709774p14712204.html
Sent from the Gfoss mailing list archive at Nabble.com.

eh, il problema, trattandosi di archeologia, è che devo avere in un unico
layer gli strati che si andranno a sovrapporre in successione. Quindi avrò
pavimento, muro, strato di terra sul muro, un'altra pavimentazione, un nuovo
muro e così via...

Scusa la domanda molto [OT],

ma mi piacerebbe capire meglio la questione che dici.

Capisco la sovrapposizione degli strati a causa di fasi storiche successive, ma perche' tenerli per forza in un unico strato ?

Tra l'altro, forse, potresti dotarli di terza dimensione (asse Z).
Anche se negativa non dovrebbero esserci problemi.
Questo non ti aiuta a risolvere il problema, ma se (in futuro) postgis supportasse query 3D potresti interrogarlo per strati.

Andrea.

=============================================================================================
Ogni frase al di sotto di questa riga non e' inserita dall'autore del messaggio, che percio' ne declina ogni responsabilita'

Andrea P. wrote:

Capisco la sovrapposizione degli strati a causa di fasi storiche
successive, ma perche' tenerli per forza in un unico strato ?

Intanto perchè non è possibile che l'ordine di sovrapposizione dipenda
dall'ordine dei layer nel registro.
Se ho uno strato di terra e sopra un focolare, sarei sempre nell'ambito
della categoria strato
Inoltre mi piacerebbe cavarmela con una query secca nel caso della ricerca
di fasi o rapporti.

Se avessi le mie (termine tecnico) unità stratigrafiche in layer differenti,
dovrei fare una query per ogni layer e non è molto comodo, a meno di
imparare a fare una bella interfaccia con le qt e tramite python lanciare la
medesima interrogazione su più layer.

Andrea P. wrote:

Tra l'altro, forse, potresti dotarli di terza dimensione (asse Z).

la terza dimensione sarebbe fantastica, il problema è che trattandosi di
superfici non posso inserire una quota e basta, ma una serie di quote e di
certo non posso fare affidamento su di queste per la sovrapposizione.
Infatti uno strato più recente può essere più in basso di uno più antico e
trovarsi nella medesima posizione: è il caso delle fosse.

Spero di essere stato chiaro, se qualcosa non ti torna, obietta pure, che
magari mi chiarisco le idee pure io!!!

grazie

--
View this message in context: http://www.nabble.com/Ordine-di-visualizzazione-dei-poligoni-con-postgis-tp14709774p14718106.html
Sent from the Gfoss mailing list archive at Nabble.com.

......
Se avessi le mie (termine tecnico) unità stratigrafiche in layer differenti,
dovrei fare una query per ogni layer e non è molto comodo, a meno di
imparare a fare una bella interfaccia con le qt e tramite python lanciare la
medesima interrogazione su più layer.

Chiarissimo.

la terza dimensione sarebbe fantastica, il problema è che trattandosi di
superfici non posso inserire una quota e basta, ma una serie di quote e di
certo non posso fare affidamento su di queste per la sovrapposizione.
Infatti uno strato più recente può essere più in basso di uno più antico e
trovarsi nella medesima posizione: è il caso delle fosse.

Interessante,
il tuo problema e' molto piu' complicato di quello che credevo.
Se ho inteso bene quello che mi riporti, a te serve non solo l'asse Z, ma anche una quarta dimensione per il tempo, e per giunta anche con molteplicita'
superiore a 1,
visto che ogni vertice puo' appartenere a periodi storici differenti.

Una situazione decisamente complicata, che alla fine risolvi
mettendo tutto in un unico shapefile e sovrapponendo gli elementi sulla base del loro periodo storico.

Grazie per la spiegazione,

Andrea.

=============================================================================================
Ogni frase al di sotto di questa riga non e' inserita dall'autore del messaggio, che percio' ne declina ogni responsabilita'

Andrea P. wrote:

Una situazione decisamente complicata, che alla fine risolvi
mettendo tutto in un unico shapefile e sovrapponendo gli elementi sulla
base del loro periodo storico.

Grazie per la spiegazione,

Andrea.

Esatto, non avrei saputo spiegarlo meglio.

Se vuoi vedere qualcuno che sta risolvendo il problema della terza
dimensione, dai un'occhiata alle cose eccezionali che fanno a Siena

http://archeologiamedievale.unisi.it/NewPages/MIRANDUOLO/MIRgis3D_02.html

ciao ciao
--
View this message in context: http://www.nabble.com/Ordine-di-visualizzazione-dei-poligoni-con-postgis-tp14709774p14720957.html
Sent from the Gfoss mailing list archive at Nabble.com.

mando wrote:

Salve,
vorrei sapere come posso modificare l'ordine di visualizzazione dei
poligoni in un layer postgis.
Spiego meglio: ho disegnato il poligono che mi definisce l'ingombro di un
muro. Poi ho disegnato il poligono del pavimento sul quale sta il muro. A
questo punto non vedo più il muro perchè è coperto dal pavimento. Come
posso fare per metterlo in primo piano? Devo scambiare tra loro il GID?

grazie

Dunque, ho fatto un po' di prove ed effettivamente, modificando la pk della
tabella e aggiornando la vista, l'ordine di sovrapposizione dei poligoni
cambia; tuttavia non riesco a capire bene le regole che sottendono al
comportamento. Faccio un po' di indagini sulla forum di qgis e vedo cosa
viene fuori.

ciao ciao
--
View this message in context: http://www.nabble.com/Ordine-di-visualizzazione-dei-poligoni-con-postgis-tp14709774p14722713.html
Sent from the Gfoss mailing list archive at Nabble.com.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andrea Aime ha scritto:

Beh, si potrebbe prendere la questione da un altro angolo. Muro e
pavimento sono semanticamente differenti, quindi forse dovrebbero stare
in due layer (tabelle) separati. In tal caso il problema di risolve da se.

Ciao
Andrea

Oppure tenerli nella stessa tabella di postgis ma selezionarli
differentemente in qgis.
Per esempio tirando su lo strato due volte mettendo nel query_log la
clausola layer=muro una volta e layer=pavimento la seconda.
Se il problema e' solo nell'ordine di visualizzazione dei due strati
questo potrebbe risolvere.
ciao
Lia
- --
Emilia Venturato
email+jabber: venturato@faunalia.it
www.faunalia.it
Tel: (+39) 347-2770007 Tel+Fax: (+39) 0587-213742
Piazza Garibaldi 5 - 56025 Pontedera (PI), Italy
http://www.faunalia.it/ev
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHhcewOsndmJr6cvYRAuBMAJ9Ne8GcQIWmO5YVD5uScSGayqd6gACeMkxJ
tWoF35ExLY+wYd8g+gTw67w=
=E71y
-----END PGP SIGNATURE-----

Emilia Venturato wrote:

Oppure tenerli nella stessa tabella di postgis ma selezionarli
differentemente in qgis.
Per esempio tirando su lo strato due volte mettendo nel query_log la
clausola layer=muro una volta e layer=pavimento la seconda.
Se il problema e' solo nell'ordine di visualizzazione dei due strati
questo potrebbe risolvere.
ciao

Si questo è verissimo, ma pensa quando hai 30 pavimenti e 50 muri, diventa
un po' scomodo!

In più il problema è che volevo farlo in QGIS. Nel mio ultimo post facevo
notare che se si cambia il numero alla pk della tabella, anche l'ordine di
visualizzazione dei poligoni cambia. Secondo te, come si può fare una query
di update che modifichi la numerazione delle pk senza fare troppi giri.
--
View this message in context: http://www.nabble.com/Ordine-di-visualizzazione-dei-poligoni-con-postgis-tp14709774p14731174.html
Sent from the Gfoss mailing list archive at Nabble.com.

mando ha scritto:

Emilia Venturato wrote:

Oppure tenerli nella stessa tabella di postgis ma selezionarli
differentemente in qgis.
Per esempio tirando su lo strato due volte mettendo nel query_log la
clausola layer=muro una volta e layer=pavimento la seconda.
Se il problema e' solo nell'ordine di visualizzazione dei due strati
questo potrebbe risolvere.
ciao

Si questo è verissimo, ma pensa quando hai 30 pavimenti e 50 muri, diventa
un po' scomodo!

In più il problema è che volevo farlo in QGIS. Nel mio ultimo post facevo
notare che se si cambia il numero alla pk della tabella, anche l'ordine di
visualizzazione dei poligoni cambia. Secondo te, come si può fare una query
di update che modifichi la numerazione delle pk senza fare troppi giri.

Hum, qualcosa mi è venuto in mente. Aggiungi un campo "layer"
alla tabella, deve essere not null e indicizzato. Poi usi il comando
CLUSTER, che riordina il contenuto della tabella lungo i valori dell'indice.
CLUSTER serve per velocizzare le query effettuate su un certo campo,
ma probabilmente riesci ad abusarne per ottenere un certo ordine
di visualizzazione.
Oh, CLUSTER è un comando "one time" in Postgres, ovvero la tabella
non viene tenuta in ordine, devi rilanciare cluster tutte le volte
che, dopo aver fatto delle modifiche, vuoi imporre di nuovo l'ordine
lungo l'indice.
http://www.postgresql.org/docs/8.1/static/sql-cluster.html

Ciao
Andrea

aaime wrote:

mando ha scritto:

Hum, qualcosa mi è venuto in mente. Aggiungi un campo "layer"
alla tabella, deve essere not null e indicizzato. Poi usi il comando
CLUSTER, che riordina il contenuto della tabella lungo i valori
dell'indice.
CLUSTER serve per velocizzare le query effettuate su un certo campo,
ma probabilmente riesci ad abusarne per ottenere un certo ordine
di visualizzazione.
Oh, CLUSTER è un comando "one time" in Postgres, ovvero la tabella
non viene tenuta in ordine, devi rilanciare cluster tutte le volte
che, dopo aver fatto delle modifiche, vuoi imporre di nuovo l'ordine
lungo l'indice.
http://www.postgresql.org/docs/8.1/static/sql-cluster.html

Bello, sembra funzionare anche se con tre layer qualche anomalia ogni tanto
capita.

Beh, intanto mi pare un buon inizio e ringrazio tutti quelli che si sono
appassionati al problema.

La prossima mossa sarebbe quella di fare una mascherina con le qt per
modificare i valori del campo layer e lanciare CLUSTER tramite psycopg2.
Vediamo se ho capito come funziona python!

Faccio sapere,

ciao ciao

mando
--
View this message in context: http://www.nabble.com/Ordine-di-visualizzazione-dei-poligoni-con-postgis-tp14709774p14742833.html
Sent from the Gfoss mailing list archive at Nabble.com.