[pgrouting-users] Create network with nodes at least every 50m

Adam Lawrence alaw005 at gmail.com
Sat Aug 23 17:16:00 PDT 2014


Hi,

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).

Regards
Adam




DROP FUNCTION hutt_pax.my_test_function();
CREATE OR REPLACE FUNCTION hutt_pax.my_test_function()
  RETURNS TABLE (
xid integer,
xgeog geometry) AS
$BODY$
DECLARE
    r hutt_pax.roads_wainuiomata%ROWTYPE;
BEGIN
FOR r IN
SELECT *
FROM hutt_pax.roads_wainuiomata
LOOP

xid := r.id;
xgeog := ST_Segmentize(
r.geom,
0.050
);

RETURN NEXT;
END LOOP;

RETURN NEXT;    -- return final result

END;
$BODY$ LANGUAGE plpgsql STABLE;

SELECT *
FROM hutt_pax.my_test_function();
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgrouting-users/attachments/20140824/22e09a55/attachment.html>


More information about the Pgrouting-users mailing list