public class VertexRouter extends AbstractRouter<Graph> implements VisitedVerticesAware, FoundTargetsAware, TargetCostsAware
RouterParameters.isFindShortestPath()
RouterParameters.isIgnoreOneWays()
RouterParameters.isIgnoreRestrictions()
RouterParameters.getHeuristicFactor()
RouterParameters.isResetOnZero()
RouterParameters.isFindReverse()
makePath(int)
liefert danach
die Route in der korrekten Richtung, also vom Target zum Source
zurueck, was die Darstellung der Geometrie befriedigt, jedoch
genau umgekehrt zur eigentlichen Abfrage, also vom Start zum
Ziel ist.Graph
,
OverlayVertexRouter
,
VisitedVerticesAware
,
TargetCostsAware
graph, log
Constructor and Description |
---|
VertexRouter(Graph graph,
Log log) |
Modifier and Type | Method and Description |
---|---|
protected double |
calcEdgeCost(int edgeIdx,
int fromEdgeIdx)
Liefert die Kosten einer Kante.
|
protected double |
calcVertexCost(int vertexId)
Diese Implementation liefert entweder 0 fuer Dijkstra
oder die heuristische Distanz zum Ziel fuer AStar.
|
double |
getTargetCost(int vertexId)
Liefert die internen Kosten der PriorityQueue fuer
einen besuchten Target-Vertexes.
|
int[] |
getVisited()
Liefert eine Menge aller besuchten VertexIDs.
|
int[] |
getVisitedTargetIds()
Ermoeglicht die Abfrage aller gefundenen Ziele aufgrund
der gelieferten
RouterConstraints . |
boolean |
isVisited(int vertexId)
Liefert true, wenn sich ein Vertex nach der Traversierung
in der BlackList (ClosedList) befindet, also besucht
oder erreicht wurde.
|
int[] |
makePath(int toTargetId)
Erstellt den Pfad nach erfolgreichem
AbstractRouter.traverse(int, RouterConstraints, RouterParameters) . |
boolean |
traverse(int sourceId,
RouterConstraints constraints,
RouterParameters params)
Traversiert den Graphen bis zur Abbruchbedingung oder komplett.
|
findFastestPath, findPath, findPath, findShortestPath, graphClassOf, init, newAbstractRouter, newRouter, traverseFully
public boolean traverse(int sourceId, RouterConstraints constraints, RouterParameters params)
AbstractRouter
traverse
in class AbstractRouter<Graph>
sourceId
- Vertex Start Id (1-wertig)constraints
- RouterConstraints
Abbruchbedingung (NULLABLE).params
- RouterParameters
weitere Einstellungen (NULLABLE).RouterConstraints.targetIds
erreicht.AbstractRouter.makePath(int)
,
AbstractRouter.findPath(int, int, double, RouterParameters)
,
AbstractRouter
public final int[] makePath(int toTargetId)
AbstractRouter
AbstractRouter.traverse(int, RouterConstraints, RouterParameters)
.makePath
in class AbstractRouter<Graph>
toTargetId
- Id des ZielVertex. Dies muss nicht zwangslaeufig
der Ziel-Knoten sein. Es kann auch ein beliebiger Vertex aus
AbstractRouter.isVisited(int)
uebergeben werden, um so weitere Pfade zu finden.
Dies muss jedoch von der jeweiligen Implementation des Routers unterstuetzt werden.null
, wenn nicht gefunden.AbstractRouter
public final int[] getVisited()
VisitedVerticesAware
getVisited
in interface VisitedVerticesAware
public boolean isVisited(int vertexId)
AbstractRouter
isVisited
in class AbstractRouter<Graph>
vertexId
- int Id des Vertex >0.AbstractRouter.makePath(int)
,
AbstractRouter
public double getTargetCost(int vertexId)
TargetCostsAware
getTargetCost
in interface TargetCostsAware
vertexId
- int ID des VertexVertexRouter
,
OverlayVertexRouter
public int[] getVisitedTargetIds()
FoundTargetsAware
RouterConstraints
.getVisitedTargetIds
in interface FoundTargetsAware
VertexRouter
,
OverlayVertexRouter
protected double calcVertexCost(int vertexId)
vertexId
- Id des Vertex.protected double calcEdgeCost(int edgeIdx, int fromEdgeIdx)
edgeIdx
- int Index der Kante ueber die wir fahren.fromEdgeIdx
- int Index der Kante, von der wir kommen.