Correct. It looks like the below query will return coincident lines along contiguous sections of 3 or more (it also assumes your network is properly directionalized).

This is a problem of transitive closure. I once solved this iteratively by first finding all the degree-2 nodes in my network, then one node at at time, merging the two lines that share the node.

A modern approach might be to solve this using PostgreSQL's new recursive SQL 
syntax.
Cheers,
Kevin

Martin Fafard wrote:
Stanley

Thank you
But your query merge two contiguous lines but not 3 or more contiguous lines...

Martin

Sufficool, Stanley a écrit :
Does this look correct?

select st_linemerge(st_collect(cs1.the_geom))
from (
        select the_geom, st_startpoint(cs_s.the_geom) as linepoint
        from mylinetable cs_s
UNION ALL select the_geom, st_endpoint(cs_e.the_geom) as linepoint
        from mylinetable cs_e

) as cs1
group by linepoint
having count(*) = 2

_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to