Created
March 2, 2015 10:49
-
-
Save mixedbredie/ee3abdb247be6840b400 to your computer and use it in GitHub Desktop.
pgr_trsp wrapper
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Function: routing.pgr_trsp_rcost(character varying, integer, integer) | |
-- DROP FUNCTION routing.pgr_trsp_rcost(character varying, integer, integer); | |
CREATE OR REPLACE FUNCTION routing.pgr_trsp_rcost(IN tbl character varying, IN source integer, IN target integer, OUT seq integer, OUT gid integer, OUT geom geometry) | |
RETURNS SETOF record AS | |
$BODY$ | |
DECLARE | |
sql text; | |
rec record; | |
BEGIN | |
seq := 0; | |
sql := 'SELECT gid,geometry FROM pgr_trsp(''SELECT gid as id, source::integer, target::integer, cost_len::float AS cost, rcost_len::float AS reverse_cost FROM ' || quote_ident(tbl) || '''::text' || ',' | |
|| source::integer || ',' | |
|| target::integer || ', true, true, ''SELECT to_cost, teid AS target_id, feid||COALESCE(''','''||via,'''') AS via_path FROM itn_turn_restrictions''::text) AS route JOIN ' | |
|| quote_ident(tbl) || ' ON itn_network.gid = route.id2 ORDER BY seq'; | |
FOR rec IN EXECUTE sql | |
LOOP | |
seq := seq + 1; | |
gid := rec.gid; | |
geom := rec.geometry; | |
RETURN NEXT; | |
END LOOP; | |
RETURN; | |
END; | |
$BODY$ | |
LANGUAGE plpgsql VOLATILE STRICT | |
COST 100 | |
ROWS 1000; | |
ALTER FUNCTION routing.pgr_trsp_rcost(character varying, integer, integer) | |
OWNER TO postres; | |
COMMENT ON FUNCTION routing.pgr_trsp_rcost(character varying, integer, integer) IS 'OL3 turn restricted shortest path with reverse cost'; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment