"Kürzester-Weg" Berechnungen und mehr mit pgRouting Daniel Kastl
"Kürzester-Weg" Berechnungen und mehr mit pgRouting
Daniel Kastl
Was ist pgRouting?
Kürzester Weg
TSP und DD
VRP (DARP)
Beispiel Straßennetze
Wie sehen sie aus?
Etwa so ...
… oder so ...
… oder manchmal so.
Besondere Eigenschaften von Straßennetzen
Ampeln Schilder Markierungen
Wie kann hier pgRouting helfen?
gid,source,target,cost,reverse_cost,x1, y1,x2, y2,rule,to_cost
source
target
Daher müssen die Kosten erhöht werden.
Ampeln verlangsamen die Fahrt.
A
BC
D
cost(A)=cost(A)+30seccost(B)=cost(B)+30seccost(C)=cost(C)+30seccost(D)=cost(D)+30sec
1min
Schilder beschreiben Verbote und Straßentypen.
cost(A)=length(A)reverse_cost(A)=∞
A
Manchmal haben Kosten eine andere Bedeutung.
cost(A)=length(A)/2reverse_cost(A)=length(A)*2
cost(B)=length(B)*3reverse_cost(B)=length(B)/3
A
B
Abbiegeverbote regeln Abbiege-
beziehungen.
A
BC
D
cost(A)=cost(A)+1mincost(B)=cost(B)+1mincost(C)=cost(C)+1mincost(D)=cost(D)+1min
1min
A
BC
D
rule(A)="D"to_cost(A, D)=∞
Straßentypen können zur Kosten-berechnung heran-gezogen werden.
Nicht nur Straßen-typen, sondern auch Straßenbedingungen
Was ist mit der Straßenmarkierung?
Sie unterteilt Fahrspuren, ...
...definiert Straßen-typen, ...
... und Einschränkungen.
A
B
C
D
rule(D)="A, B"to_cost(D)=∞
E
Und wissen Sie was phantastisch ist an pgRouting?
Alle Kosten sind dynamisch.
Also das Gegenteil von vorberechnet.
Ist eine Straße gesperrt, ...
... gibt es einen Unfall, ...
... ein Verkehrsschild mit zeitabhängigen
Anweisungen, ...
... schlechte Wetterbedingungen, ...
... oder ein Hindernis, ...
Dann brauchen Sie das Netz nicht neuberechnen
und neuladen ...
... und ewig warten.
Sie passen nur die Kosten an für die betroffenen Straßenabschnitte.
Und die folgende Suche nimmt einen anderen Weg.
Kosten können praktisch alles mögliche sein.
pgRouting funktioniert mit OpenStreetMap Daten.
pgRouting funktioniert mit unterschiedlichen Arten von Netzen.
Kanäle und Flüsse, ...
... Wanderwege, ...
... oder jedere andere Art von
Netzwerk.
Demo
Photos von sxc.hu und flickr unter Creative Commons Lizenz.