[pgrouting-users] Problem using TRSP
Stephen Woodbridge
woodbri at swoodbridge.com
Mon Aug 20 05:35:33 PDT 2012
Please keep the queries on the list.
No, I have no idea, I've never seen anything like that before.
What does this query return?
select count(*) from japan where cost_car=0;
-Steve
On 8/20/2012 7:26 AM, Tao Romera Martinez wrote:
> Dear Stephen,
>
> I have been trying to use your function for turn restricted shortest
> path routing.
> I installed the postgresql functions, prepared a table with the turn
> costs, and now I am able to route through a network using turn
> restrictions. Well, almost.
>
> When I launch a request, the column "cost" contains 0 values except
> for the rows where there is a turn (the cost is the one set for
> turns).
> The request is:
>
> SELECT * FROM turn_restrict_shortest_path(
> 'SELECT id AS id, source::integer, target::integer, cost_car AS cost
> FROM japan WHERE japan.geom_way && ST_MakeEnvelope(139.675, 35.729,
> 139.705, 35.762)',
> 284867, -- node_id of start
> 282034, -- node_id of end
> false, -- directed graph?
> false, -- has_reverse_cost?
> 'SELECT to_cost::double precision, teid::integer AS target_id,
> feid||coalesce('',''||via,'''') AS via_path FROM turn_costs WHERE teid
> IN (select id FROM japan WHERE japan.geom_way &&
> ST_MakeEnvelope(139.675, 35.729, 139.705, 35.762)) ');
>
> The ST_MakeEnvelope is just to create a window and limit the otherwise
> huge amount of ways.
>
> The table "japan" looks like:
>
> id | osm_id | osm_name | osm_source_id | osm_target_id | clazz |
> flags | source | target | km | kmh | cost | reverse_cost | x1 | y1 |
> x2 | y2 | geom_way | cost_car
> ----+---------+----------+---------------+---------------+-------+-------+--------+--------+-----------+-----+-----------+--------------+----------+------------+-------------+------------+----------------------------
> 1 | 4847506 | | 31236733 | 31236584 | 11 |
> 1 | 24690 | 24758 | 1.6335903 | 1 | 6.5343612 | 1.6335903 |
> 139.7578 | 35.6437952 | 139.7688252 | 35.6349433 | <snip> | 3.2671806
>
> And the table "turn_costs" looks like:
>
> rid | to_cost | teid | feid | via
> -----+---------+--------+------+-----
> 1 | 0.15 | 22 | 10 |
> 2 | 0.15 | 21 | 10 |
> 3 | 0.15 | 163 | 10 |
> 4 | 0.15 | 27 | 10 |
> 5 | 0.15 | 26 | 10 |
> 6 | 0.15 | 27 | 11 |
> 7 | 0.15 | 26 | 11 |
> 8 | 0.15 | 229 | 11 |
> 9 | 0.15 | 232698 | 11 |
> 10 | 0.15 | 229 | 12 |
>
> The result of the query looks like:
>
> vertex_id | edge_id | cost
> -----------+---------+-------------
> 284867 | 211472 | 0
> 284794 | 211471 | 0
> 134058 | 205895 | 0.15
> 284826 | 205894 | 0
> 131290 | 205893 | 0
> 127938 | 201505 | 0
> 132923 | 201504 | 0
> <...>
> 282198 | 425307 | 0
> 282197 | 795399 | 0.021921627
> 282276 | 795400 | 0.05221079
> 282035 | 425170 | 0.15
> 282034 | -1 | 0
>
> Do you have an idea about why the "cost" values are 0?
>
> Thank you very much for your help,
>
> Tao
>
More information about the Pgrouting-users
mailing list