de.cm.osm2po.routing
Class OvlRouter

java.lang.Object
  extended by de.cm.osm2po.routing.OvlRouter
All Implemented Interfaces:
MultiPathOverlayRouter, SingleTargetOverlayRouter, SingleTargetRouter

public class OvlRouter
extends java.lang.Object
implements MultiPathOverlayRouter

Simple Dijkstra-ShortestPath-Implemetation, with OverlayGraph support.

Author:
(c) 2012 - Carsten Moeller - info@osm2po

Constructor Summary
OvlRouter()
           
 
Method Summary
 int[] findPath(Graph graph, int sourceId, int targetId, float maxCost, java.util.Properties params)
          Traversiert den Graphen, bricht ab, sobald der Ziel-Vertex besucht wurde und liefert den Path.
 OverlayEdge[] findPath(OverlayGraph overlayGraph, int sourceId, int targetId, float maxCost, java.util.Properties params)
          Traversiert den Graphen, bricht ab, sobald der Ziel-Vertex besucht wurde und liefert den Path.
 int[] getVisited()
          Liefert eine Menge aller besuchten VertexIDs.
 boolean isVisited(int vertexId)
          Liefert true, wenn sich ein Vertex nach der Traversierung in der BlackList (ClosedList) befindet, also besucht bzw. erreicht wurde.
 OverlayEdge[] makePath(int targetId)
          Erstellt den Pfad nach erfolgreichem MultiPathOverlayRouter.traverse(OverlayGraph, int, int, float, Properties) Dabei werden vom Ziel die Kanten rueckwaerts durchfahren, die Reihenfolge umgedreht und vorwaers sortiert zurueckgeliefert.
 void reset()
          Gibt Speicherresourcen frei.
 void setLog(Log log)
          Setzt einen optionalen Logger.
 void traverse(OverlayGraph overlayGraph, int sourceId, int targetId, float maxCost, java.util.Properties params)
          Traversiert den Graphen und bricht ab, sobald der Ziel-Vertex besucht wurde oder die maxCost ueberschritten wurde.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OvlRouter

public OvlRouter()
Method Detail

reset

public void reset()
Description copied from interface: SingleTargetRouter
Gibt Speicherresourcen frei. Aufrufe zu z.B SingleTargetRouter.getVisited() sind danach nicht mehr moeglich und verursachen Fehler. Es muss dann erst wieder SingleTargetRouter.findPath(Graph, int, int, float, Properties) aufgerufen werden, um auf derartige Informationen abzugreifen.

Specified by:
reset in interface SingleTargetRouter

setLog

public void setLog(Log log)
Description copied from interface: SingleTargetRouter
Setzt einen optionalen Logger.

Specified by:
setLog in interface SingleTargetRouter
Parameters:
log - Log

traverse

public void traverse(OverlayGraph overlayGraph,
                     int sourceId,
                     int targetId,
                     float maxCost,
                     java.util.Properties params)
Description copied from interface: MultiPathOverlayRouter
Traversiert den Graphen und bricht ab, sobald der Ziel-Vertex besucht wurde oder die maxCost ueberschritten wurde.

Specified by:
traverse in interface MultiPathOverlayRouter
Parameters:
overlayGraph - OverlayGraph
sourceId - Vertex Start Id
targetId - Vertex Ziel Id
maxCost - Maximal zulaessige Wegkosten. Abbruchkriterium.
params - Properties weitere Einstellungen (NULLABLE).
See Also:
MultiPathOverlayRouter.makePath(int), SingleTargetRouter.getVisited()

findPath

public OverlayEdge[] findPath(OverlayGraph overlayGraph,
                              int sourceId,
                              int targetId,
                              float maxCost,
                              java.util.Properties params)
Description copied from interface: SingleTargetOverlayRouter
Traversiert den Graphen, bricht ab, sobald der Ziel-Vertex besucht wurde und liefert den Path.

Specified by:
findPath in interface SingleTargetOverlayRouter
Parameters:
overlayGraph - OverlayGraph NULLABLE.
sourceId - Vertex Start Id
targetId - Vertex Ziel Id
maxCost - Maximal zulaessige Wegkosten. Abbruchkriterium.
params - Properties weitere Einstellungen (NULLABLE).
Returns:
OverlayEdge[] oder null, wenn nicht gefunden.

makePath

public OverlayEdge[] makePath(int targetId)
Description copied from interface: MultiPathOverlayRouter
Erstellt den Pfad nach erfolgreichem MultiPathOverlayRouter.traverse(OverlayGraph, int, int, float, Properties) Dabei werden vom Ziel die Kanten rueckwaerts durchfahren, die Reihenfolge umgedreht und vorwaers sortiert zurueckgeliefert.

Specified by:
makePath in interface MultiPathOverlayRouter
Parameters:
targetId - Id des ZielVertex. Dies muss nicht zwangslaeufig der Ziel-Knoten, sein. Es kann auch ein beliebiger Vertex aus SingleTargetRouter.getVisited() uebergeben werden, um so weitere Pfade zu finden.
Returns:
Array von OverlayEdge-Objekten vom Start zum Ziel oder null, wenn kein Pfad vorhanden.

findPath

public int[] findPath(Graph graph,
                      int sourceId,
                      int targetId,
                      float maxCost,
                      java.util.Properties params)
Description copied from interface: SingleTargetRouter
Traversiert den Graphen, bricht ab, sobald der Ziel-Vertex besucht wurde und liefert den Path.

Specified by:
findPath in interface SingleTargetRouter
Parameters:
graph - Graph
sourceId - Vertex Start Id
targetId - Vertex Ziel Id
maxCost - Maximal zulaessige Wegkosten. Abbruchkriterium.
params - Properties weitere Einstellungen (NULLABLE).
Returns:
int[] Indizes (nicht die IDs!) der Edge-Objekte vom Start zum Ziel oder null, wenn nicht gefunden.

getVisited

public final int[] getVisited()
Description copied from interface: SingleTargetRouter
Liefert eine Menge aller besuchten VertexIDs. Ob diese sortiert ist oder nicht, haengt von der Implementation ab.

Specified by:
getVisited in interface SingleTargetRouter
Returns:
int[] VertexIds (not null)

isVisited

public final boolean isVisited(int vertexId)
Description copied from interface: MultiPathOverlayRouter
Liefert true, wenn sich ein Vertex nach der Traversierung in der BlackList (ClosedList) befindet, also besucht bzw. erreicht wurde.

Specified by:
isVisited in interface MultiPathOverlayRouter
Parameters:
vertexId - int Id des Vertex > 0.
Returns:
wurde besucht, ja/nein.

osm2po-core-5.0.0 (c) December 24 2014 Carsten Moeller - info@osm2po.de