public class PoiRouter extends java.lang.Object implements MultiTargetRouter
Constructor and Description |
---|
PoiRouter() |
Modifier and Type | Method and Description |
---|---|
protected double |
calcEdgeCost(int edgeIdx) |
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.
|
int[] |
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.
|
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.
|
void |
traverse(OverlayGraph overlayGraph,
int sourceId,
int[] targetIds,
float maxCost,
java.util.Properties params)
Traversiert den Graphen und bricht ab, sobald
alle Ziel-Vertices besucht wurden.
|
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.
|
public void setLog(Log log)
SingleTargetRouter
setLog
in interface SingleTargetRouter
log
- Log
public void reset()
SingleTargetRouter
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.reset
in interface SingleTargetRouter
public int[] findPath(Graph graph, int sourceId, int targetId, float maxCost, java.util.Properties params)
SingleTargetRouter
findPath
in interface SingleTargetRouter
graph
- Graph
sourceId
- Vertex Start IdtargetId
- Vertex Ziel IdmaxCost
- Maximal zulaessige Wegkosten. Abbruchkriterium.params
- Properties
weitere Einstellungen (NULLABLE).Edge
-Objekte
vom Start zum Ziel oder null, wenn nicht gefunden.public int[] findPath(OverlayGraph overlayGraph, int sourceId, int targetId, float maxCost, java.util.Properties params)
SingleTargetRouter
findPath
in interface SingleTargetRouter
overlayGraph
- OverlayGraph
sourceId
- Vertex Start IdtargetId
- Vertex Ziel IdmaxCost
- Maximal zulaessige Wegkosten. Abbruchkriterium.params
- Properties
weitere Einstellungen (NULLABLE).Edge
-Objekte
vom Start zum Ziel oder null, wenn nicht gefunden.public void traverse(Graph graph, int sourceId, int targetId, float maxCost, java.util.Properties params)
MultiPathRouter
traverse
in interface MultiPathRouter
graph
- Graph
sourceId
- Vertex Start IdtargetId
- Vertex Ziel IdmaxCost
- Maximal zulaessige Wegkosten. Abbruchkriterium.params
- Properties
weitere Einstellungen (NULLABLE).MultiPathRouter.makePath(int)
,
SingleTargetRouter.getVisited()
public void traverse(OverlayGraph overlayGraph, int sourceId, int targetId, float maxCost, java.util.Properties params)
MultiPathRouter
traverse
in interface MultiPathRouter
overlayGraph
- OverlayGraph
sourceId
- Vertex Start IdtargetId
- Vertex Ziel IdmaxCost
- Maximal zulaessige Wegkosten. Abbruchkriterium.params
- Properties
weitere Einstellungen (NULLABLE).MultiPathRouter.makePath(int)
,
SingleTargetRouter.getVisited()
public void traverse(Graph graph, int sourceId, int[] targetIds, float maxCost, java.util.Properties params)
MultiTargetRouter
traverse
in interface MultiTargetRouter
graph
- Graph
sourceId
- Vertex Start Id.targetIds
- int[] Array von Vertex Ziel Ids.maxCost
- Maximal zulaessige Wegkosten. Abbruchkriterium.params
- Properties
weitere EinstellungenMultiPathRouter.makePath(int)
,
SingleTargetRouter.getVisited()
,
MultiPathRouter.isVisited(int)
,
MultiTargetRouter.getCost(int)
public void traverse(OverlayGraph overlayGraph, int sourceId, int[] targetIds, float maxCost, java.util.Properties params)
MultiTargetRouter
traverse
in interface MultiTargetRouter
overlayGraph
- OverlayGraph
sourceId
- Vertex Start Id.targetIds
- int[] Array von Vertex Ziel Ids.maxCost
- Maximal zulaessige Wegkosten. Abbruchkriterium.params
- Properties
weitere Einstellungenpublic int[] makePath(int toTargetId)
MultiPathRouter
MultiPathRouter.traverse(Graph, int, int, float, Properties)
Dabei werden vom Ziel die Kanten rueckwaerts durchfahren,
die Reihenfolge umgedreht und vorwaers sortiert zurueckgeliefert.makePath
in interface MultiPathRouter
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.Edge
-Objekte
vom Start zum Ziel oder null, wenn kein Pfad vorhanden.public int[] getVisited()
SingleTargetRouter
getVisited
in interface SingleTargetRouter
public boolean isVisited(int vertexId)
MultiPathRouter
isVisited
in interface MultiPathRouter
vertexId
- int Id des Vertex > 0.public float getCost(int vertexId)
MultiTargetRouter
getCost
in interface MultiTargetRouter
vertexId
- int Id des Vertex > 0.public float getMaxCost()
MultiTargetRouter
getMaxCost
in interface MultiTargetRouter
protected double calcEdgeCost(int edgeIdx)