[postgis-users] network generation question.

Kevin Neufeld kneufeld at refractions.net
Sun Jun 14 21:13:03 PDT 2009


Hi Jeff,

I just posted a page to the PostGIS wiki that might help you.  Let me 
know if I can clarify anything for you.

http://trac.osgeo.org/postgis/wiki/UsersWikiExamplesNetworkTopology

Cheers,
Kevin

Jeff Hamann wrote:
> PostGIS Community:
>
> I've been chewing on this for the last day or so, and could use some 
> guidance on the following situation because I think I'm doing some 
> poorly.
>
> 1) I have a set of linestrings that represent road segments.
> 2) I need to generate a table that contains a 
> from_node,to_node,linestring where the from_node/to_nodes are the 
> points of intersection.
> 3) I'm a newbie with st_intersection and my query so far is:
>
> -- break the existing multilinestringm's into something managable.
>
> drop table if exists temproads;
> create table temproads as select *, st_force_2d( 
> ST_GeometryN(centerline,1) ) as cline FROM road_lines where 
> ST_NumGeometries(centerline) = 1;
> insert into temproads select *, st_force_2d( 
> ST_GeometryN(centerline,2) ) as cline FROM road_lines where 
> ST_NumGeometries(centerline) = 2;
>
>
> create table
>      roads2 as
> select
>   r1.trid as from_id,
>   r2.trid as to_id,
>   Relate( r1.cline, r2.cline ) as relate,
>   ST_Intersection( r1.cline, r2.cline ) as st_intersection
> from
>   temproads r1,
>   temproads r2
> where
>  intersects( r1.cline, r2.cline )
> order by
>     r1.trid,
>        r2.trid;
>
> The results look nice on the screen, but then I need to break up the 
> linestrings into segments between where the two linestrings touch. 
> When I dig a little deeper, it looks like all of the original parts 
> are there, and I can write the additional code to extract out the new 
> line segments, end nodes (from/to), and build a new table from 
> scratch, but I'm not sure I'm doing this smartly.
>
> So my question is this:
>
> 1) Given a bunch of linestrings (multilinestrings), is it possible to, 
> in one or two postgis queries, to generate a network graph with edges 
> (as linestrings) and verticies (as points) where each linestring has 
> the from vertex and the to vertex from the newly created points, in 
> addition to the corresponding linestring between the two?
>
> Thanks for PostGIS!
>
> Jeff Hamann, PhD
> PO Box 1421
> Corvallis, Oregon 97339-1421
> 541-754-2457
> jeff.hamann[at]forestinformatics[dot]com
> http://www.forestinformatics.com
>
>
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users



More information about the postgis-users mailing list