[pgrouting-users] Reduce the graph

Stephen Woodbridge woodbri at swoodbridge.com
Sat Mar 10 09:51:01 EST 2012


On 3/10/2012 2:20 AM, Aurélien FILEZ wrote:
> Hi,
>
> This table is build with lines I decompose in segments of 2 points.
>
> Maybe it is better to act from these full lines, searching points used
> by more than one line ?

Yes, but the question that I am trying to answer is How are you going to 
do the efficiently?

I just noticed that you already have v1 and v2 assigned, so you can do 
something like this:

create table vertices_tmp as
select id, count(*) as cnt from
    (select v1 as id from edge union all select v2 as id from edge) as 
foo group by id;

Now to find all the the nodes where cnt=2

select id from vertices_tmp where cnt=2;

And you write a stored procedure to merge the two edges.

-Steve

> Thanks,
> Kin
>
> On Fri, Mar 9, 2012 at 5:48 PM, Stephen Woodbridge
> <woodbri at swoodbridge.com <mailto:woodbri at swoodbridge.com>> wrote:
>
>     On 3/9/2012 11:39 AM, Aurélien FILEZ wrote:
>
>         Hi all,
>
>         My edge table has some useless nodes. For example :
>
>         edge_id    v1      v2      the_geom
>         1              1        2      LINESTRING(x1 y1, x2 y2)
>         2              2        3      LINESTRING(x2 y2, x3 y3)
>
>         But the vertex 2 is no used in any other edge.
>
>         So I would like reduce my graph to transforme this previous
>         example to :
>         edge_id    v1      v2      the_geom
>         1              1        3      LINESTRING(x1 y1, x2 y2, x3 y3)
>
>         Is there is a way to do that ?
>
>         Thank you all :)
>
>
>     There is no automatic way to do this. I have done a lot of graph
>     analysis by adding a cnt column to the vertices_tmp column and then
>     updating it to the count of edges connected to that vertex.
>
>     Then you can do things like look for:
>
>     deadends - cnt=1
>     connected lines - cnt=2
>
>     You could write a stored procedure to that the connected lines, join
>     them together, and update the relevant tables to reflect the new
>     topology.
>
>     -Steve
>     ______________________________ _________________
>     Pgrouting-users mailing list
>     Pgrouting-users at lists.osgeo. org
>     <mailto:Pgrouting-users at lists.osgeo.org>
>     http://lists.osgeo.org/ mailman/listinfo/pgrouting- users
>     <http://lists.osgeo.org/mailman/listinfo/pgrouting-users>
>
>
>
>
> _______________________________________________
> Pgrouting-users mailing list
> Pgrouting-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-users



More information about the Pgrouting-users mailing list