de.cm.osm2po.routing
Class OverlayGraph

java.lang.Object
  extended by de.cm.osm2po.routing.OverlayGraph

public class OverlayGraph
extends java.lang.Object

Repraesentiert eine Ueberlagerung des statische OSM-Streckennetzes Graph und bildet die Grundlage fuer das Routing mittels SingleTargetOverlayRouter-Instanzen. Das heisst:
Edges und Vertices duerfen hier sowohl auf dem Graphen selbst (siehe OverlayNode.snap(Graph, int[])) als auch als reine Koordinaten ergaenzt werden, und dies sogar pro Instanz.

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

Constructor Summary
OverlayGraph(Graph graph)
           
 
Method Summary
 OverlayEdge getEdgeRamp(int edgeIdx)
          Findet zu einer statischen Edge die gesplittete virtuelle Variante, wenn vorhanden.
 Graph getGraph()
           
 int getMaxEdgeIdx()
           
 int getMaxVertexId()
           
 OverlayEdge[] getOutgoingOverlayEdges(int sourceId)
          Liefert die abgehenden Kanten zu einem Node.
 OverlayEdge getOverlayEdge(int virtualIdx)
          Liefert eine OverlayEdge aufgrund ihrer virtuellen Idx.
 OverlayNode getOverlayNode(int virtualId)
          Liefert einen OverlayNode aufgrund seiner virtuellen Id.
 void insertEdge(OverlayEdge overlayEdge)
          Fuegt eine OverlayEdge in den Graphen ein.
 OverlayNode insertNode(OverlayNode overlayNode)
          Fuegt einen OverlayNode in den virtuellen Graphen ein.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OverlayGraph

public OverlayGraph(Graph graph)
Parameters:
graph - Graph NOT NULL.
Method Detail

getGraph

public Graph getGraph()

getMaxVertexId

public int getMaxVertexId()
Returns:
int Zuletzt vergebene, virtuelle VertexId.

getMaxEdgeIdx

public int getMaxEdgeIdx()
Returns:
int Zuletzt vergebene, virtuelle EdgeIdx.

insertNode

public OverlayNode insertNode(OverlayNode overlayNode)
Fuegt einen OverlayNode in den virtuellen Graphen ein.

Parameters:
overlayNode - OverlayNode
Returns:
uebergebener OverlayNode oder, wenn bereits vorhanden, ein bereits gleicher aus dem Graphen. Nodes, die lediglich Vertices aus dem Original-Graphen repraesentieren, werden nicht eingefuegt und lediglich um Koordinaten erweitert zurueckgeliefert.

insertEdge

public void insertEdge(OverlayEdge overlayEdge)
Fuegt eine OverlayEdge in den Graphen ein.

Parameters:
overlayEdge - OverlayEdge

Wichtig:
Da die Verbindungen aufgrund der in der OverlayEdge gespeicherten VertexIds erstellt werden, muessen diese vorher bekannt und gueltig sein. Source- und TargetId duerfen sowohl statische als auch virtuelle Ids sein.

getOverlayEdge

public OverlayEdge getOverlayEdge(int virtualIdx)
Liefert eine OverlayEdge aufgrund ihrer virtuellen Idx.

Parameters:
virtualIdx - int Idx.
Returns:
OverlayEdge oder null, wenn nicht gefunden.

getOverlayNode

public OverlayNode getOverlayNode(int virtualId)
Liefert einen OverlayNode aufgrund seiner virtuellen Id.

Parameters:
virtualId - int Id.
Returns:
OverlayNode oder null, wenn nicht gefunden.

getOutgoingOverlayEdges

public OverlayEdge[] getOutgoingOverlayEdges(int sourceId)
Liefert die abgehenden Kanten zu einem Node.

Parameters:
sourceId - int Id des Vertex oder OverlayNodes.
Returns:
Array of OverlayEdge NULLABLE.

getEdgeRamp

public OverlayEdge getEdgeRamp(int edgeIdx)
Findet zu einer statischen Edge die gesplittete virtuelle Variante, wenn vorhanden.

Parameters:
edgeIdx - int Index der Edge im original Graphen.
Returns:
OverlayEdge oder null, wenn nicht gefunden.

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