2016-04-29 4 views
0

Я пытаюсь получить избыточное время и расстояние от маршрутизации в pgRouting, используя pgr_dijkstra, но я понятия не имею, как его достичь. До сих пор мне удалось выяснить, что возврат из pgr_dijkstra в единицах затрат, и я подвел итоги. Я предполагаю, что вычисление расстояния и времени фактически выполняется для каждого сегмента маршрута. Есть ли у кого-нибудь пример того, как это сделать?Как рассчитать расстояние и время, используя pgRouting

SELECT SUM(cost) 
    FROM (SELECT cost 
     FROM pgr_dijkstra('SELECT u_gid as id, 
            u_source AS source, 
            u_target AS target, 
            cost AS cost, 
            reverse_cost 
           FROM ways', 78771, 26263, true, true)) AS r_cost; 

Заявление выше даст мне сумму всех расходов на единицу ...

ответ

1

стоимость времени или расстояния или что вы используете для стоимостных. Если стоимость каждого края - это длина края, тогда стоимость - это расстояние. Если, однако, вы устанавливаете стоимость времени прохождения для края, тогда стоимость - это время. Если вы делаете стоимость длины ребер и имеете среднюю скорость, связанную с каждым ребром, то вы можете присоединиться к результатам обратно в таблицу краев, чтобы вычислить время.

SELECT cost as distance, cost/speed as time 
     FROM pgr_dijkstra('SELECT u_gid as id, 
            u_source AS source, 
            u_target AS target, 
            cost AS cost, 
            reverse_cost 
           FROM ways', 78771, 26263, true, true)) a, 
     ways b, 
    where a.id=b.u_gid;