2016-04-29 4 views
0

Ich versuche, die allgemeine Zeit und Abstand von einem Routing in PgRouting, mit pgr_dijkstra, aber ich habe im Grunde keine Ahnung, wie man es erreicht. Bisher habe ich herausgefunden, dass die Rendite von pgr_dijkstra in Kosteneinheiten liegt und ich fasste sie zusammen. Ich nehme an, dass die Berechnung von Entfernung und Zeit tatsächlich pro Segment in der Route erfolgt. Hat jemand ein Beispiel, wie man das macht?So berechnen Sie Entfernung und Zeit, mit 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; 

Die Erklärung oben gibt mir die Summe aller Stückkosten ...

Antwort

1

Kosten ist die Zeit oder Distanz oder was auch immer Sie für die Kostenwerte verwenden. Wenn die Kosten für jede Kante die Länge der Kante sind, dann ist die Kosten die Entfernung. Wenn Sie jedoch Kosten für die Traversierungszeit für die Kante festlegen, ist die Kosten die Zeit. Wenn Sie die Länge der Kanten berechnen und für jede Kante eine Durchschnittsgeschwindigkeit aufweisen, können Sie die Ergebnisse an die Kantentabelle anhängen, um die Zeiten zu berechnen.

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;