Salve a tutti,
ho un problema con l'ordinamento dei risultati di una select con postgis che magari qualcuno di voi ha già affrontato.. Questa è la situazione: ho due tabelle, che contengono linee, diciamo A e B. Partendo da una linea di A, devo selezionare gli attributi di tutte le linee che intersecano la linea di A della tabella B. In buona sostanza select B.campo from B inner join A on ST_Intersects(B.geom, A.geom) where A.gid=X La query sembra funzionare, il problema è che ho bisogno di quei risultati ordinati per la linea di A. Qualcosa tipo "order by A.geom"... Faccio un esempio per spiegare meglio: diciamo che in A ho dei percorsi e in B le ferrovie. Voglio trovare i punti in cui il percorso passa sulla ferrovia, nell'ordine in cui ci passerà. Si può fare? Ci sto pensando da parecchio ma non ho trovato nessuna soluzione... Grazie mille Francesco _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.faunalia.it/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. |
On Fri, 05 Feb 2010 17:04:30 +0100
Francesco <[hidden email]> wrote: > Salve a tutti, > ........ > Faccio un esempio per spiegare meglio: diciamo che in A ho dei > percorsi e in B le ferrovie. > Voglio trovare i punti in cui il percorso passa sulla ferrovia, > nell'ordine in cui ci passerà. non aiuto la soluzione, ma forse a chiarire meglio la domanda :-))) cosa intendi 'nell'ordine in cui passera': vuoi forse dire secondo la maggiore (o minore) distanza dell'intersezione da un punto di riferimento? > Grazie mille > Francesco ciao, giuliano _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.faunalia.it/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. |
In reply to this post by Francesco-4
Se ho capito bene dovresti usare la funzione di segmentazione dinamica [1]
Date le due geometrie (strade e ferrovie) la seguente query ordina le strade per il risultato della funzione st_line_locate_point che, data una linea ed un punto che la interseca, da come risultato un numero tra zero ed 1 che indica la distanza dall'inizio ella linea del punto intersecante. select f.nome, s.nome , ST_line_locate_point(f.the_geom,ST_intersection(f.the_geom, s.the_geom)) as lungo from ferro f, strade s WHERE intersects(f.the_geom, s.the_geom) order by f.nome, lungo Ciao, Diego [1] http://postgis.refractions.net/documentation/manual-1.3SVN/ch06.html#id2881111
2010/2/5 Francesco <[hidden email]> Salve a tutti, _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.faunalia.it/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. |
Grazie mille per le risposte. Mi hanno portato dritto alla soluzione.
Saluti Francesco Diego Guidotti - Aedit s.r.l. ha scritto: Se ho capito bene dovresti usare la funzione di segmentazione dinamica [1] _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.faunalia.it/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. |
Free forum by Nabble | Edit this page |