de.cm.osm2po.routing
Class PoiRouter

java.lang.Object
  extended by de.cm.osm2po.routing.PoiRouter
All Implemented Interfaces:
MultiPathRouter, MultiTargetRouter, SingleTargetRouter

public class PoiRouter
extends java.lang.Object
implements MultiTargetRouter

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

Constructor Summary
PoiRouter()
           
 
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.
 float getCost(int vertexId)
          Liefert die Kosten eines besuchten Vertex.
 float getMaxCost()
          Liefert die Kosten der laengsten bzw. schnellsten Route.
 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.
 int[] makePath(int toTargetId)
          Erstellt den Pfad nach erfolgreichem MultiPathRouter.traverse(Graph, 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(Graph graph, int sourceId, int[] targetIds, float maxCost, java.util.Properties params)
          Traversiert den Graphen und bricht ab, sobald alle Ziel-Vertices besucht wurden.
 void traverse(Graph graph, 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

PoiRouter

public PoiRouter()
Method Detail

setLog

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

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

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

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.

traverse

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

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

traverse

public void traverse(Graph graph,
                     int sourceId,
                     int[] targetIds,
                     float maxCost,
                     java.util.Properties params)
Description copied from interface: MultiTargetRouter
Traversiert den Graphen und bricht ab, sobald alle Ziel-Vertices besucht wurden.

Specified by:
traverse in interface MultiTargetRouter
Parameters:
graph - Graph
sourceId - Vertex Start Id.
targetIds - int[] Array von Vertex Ziel Ids.
maxCost - Maximal zulaessige Wegkosten. Abbruchkriterium.
params - Properties weitere Einstellungen
See Also:
MultiPathRouter.makePath(int), SingleTargetRouter.getVisited(), MultiPathRouter.isVisited(int), MultiTargetRouter.getCost(int)

makePath

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

Specified by:
makePath in interface MultiPathRouter
Parameters:
toTargetId - 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:
Indizes (nicht die IDs!) der Edge-Objekte vom Start zum Ziel oder null, wenn kein Pfad vorhanden.

getVisited

public 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 boolean isVisited(int vertexId)
Description copied from interface: MultiPathRouter
Liefert true, wenn sich ein Vertex nach der Traversierung in der BlackList (ClosedList) befindet, also besucht bzw. erreicht wurde.

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

getCost

public float getCost(int vertexId)
Description copied from interface: MultiTargetRouter
Liefert die Kosten eines besuchten Vertex.

Specified by:
getCost in interface MultiTargetRouter
Parameters:
vertexId - int Id des Vertex > 0.
Returns:
float Kosten.

getMaxCost

public float getMaxCost()
Description copied from interface: MultiTargetRouter
Liefert die Kosten der laengsten bzw. schnellsten Route.

Specified by:
getMaxCost in interface MultiTargetRouter
Returns:
float Maximal-Kosten.

osm2po-core-4.8.8 (c) 2012 Carsten Moeller - info@osm2po.de