[pgrouting-users] Create network with nodes at least every 50m
woodbri at swoodbridge.com
Sat Aug 23 19:31:08 PDT 2014
ST_Segmentize returns a multilinestring and pgrouting does not know what
to do with them so it takes only the first segment and ignores the rest.
You will need to explode the into multiple linestrings. look at
for how to do that.
What you probably should do is something like:
1. create a new edge table
2. process all you edges with segmentize and dump into the new table
3. then run pgr_createTopology on the new table
4. then try to route against the new table
On 8/23/2014 8:16 PM, Adam Lawrence wrote:
> I have spent over a week trying to work this out. I have an existing
> road network and have used pgr_alphashape to try and get a 400m walking
> catchment from bus stops.
> But pgr_alphashape snapes to the nearest network node which means
> catchments returned are significantly smaller than 400m. I have
> therefore tried to create a new network with nodes every 50m using
> ST_Segmentize but I can't seem to get it to work.
> The function below is my attempt to loop through the existing network
> and run ST_Segmentize on each entry to return updated network with
> additional nodes but it only returns one record each time rather than a
> number of segmented entries.
> Any advice on how to make this work or alternative approach would be
> greately appreciated (especially given that following over a week and
> research it seems no one else has had this problem).
> DROP FUNCTION hutt_pax.my_test_function();
> CREATE OR REPLACE FUNCTION hutt_pax.my_test_function()
> RETURNS TABLE (
> xid integer,
> xgeog geometry) AS
> r hutt_pax.roads_wainuiomata%ROWTYPE;
> FOR r IN
> SELECT *
> FROM hutt_pax.roads_wainuiomata
> xid := r.id <http://r.id>;
> xgeog := ST_Segmentize(
> RETURN NEXT;
> END LOOP;
> RETURN NEXT; -- return final result
> $BODY$ LANGUAGE plpgsql STABLE;
> SELECT *
> FROM hutt_pax.my_test_function();
> Pgrouting-users mailing list
> Pgrouting-users at lists.osgeo.org
More information about the Pgrouting-users