de.cm.osm2po.routing
Class GraphCostsOverrider

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

public class GraphCostsOverrider
extends java.lang.Object

Bietet komfortable Moeglichkeiten, um die Kosten [km] und [h] eines Graphen zur Laufzeit zu ueberschreiben und abschliessend wieder herzustellen.

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

Constructor Summary
GraphCostsOverrider(Graph graph, boolean hOrKm, Log log)
          Konstruktor.
 
Method Summary
 void close()
           
 float[] getCurrentCosts()
          Liefert einen Verweis auf die aktuell verwalteten Kosten des Graphen - entweder h oder km.
 float[] getOriginalCosts()
          Liefert die gesicherten, urspruenglichen Kosten des Graphen.
 void overrideCost(int segmentId, float cost, boolean reverse)
          Ueberschreibt die Kosten genau einer Edge.
 void overrideCostsFromPgBinary(java.io.File inFile)
          Liest ein Postgres-Binary-Export-File und modifiziert die Kosten des Graphen aufgrund dieser Daten.
 void resetToOriginalCosts()
          Schreibt die gesicherten Kosten des Graphen zurueck und stellt so dessen Urzustand wieder her.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GraphCostsOverrider

public GraphCostsOverrider(Graph graph,
                           boolean hOrKm,
                           Log log)
Konstruktor.
Sichert die urspruenglichen Kosten und erstellt den EdgeId-To-EdgeIdx-Index.

Parameters:
graph - Graph Ursprung !NULL.
hOrKm - Ueberschreibt entweder [h] (true) oder [km] (false).
log - Log !NULL
Method Detail

getOriginalCosts

public float[] getOriginalCosts()
Liefert die gesicherten, urspruenglichen Kosten des Graphen.

Returns:
float[] Kosten.

getCurrentCosts

public float[] getCurrentCosts()
Liefert einen Verweis auf die aktuell verwalteten Kosten des Graphen - entweder h oder km.

Returns:
float[] Kosten.
See Also:
Graph.getEdgeCostsH(), Graph.getEdgeCostsKm()

resetToOriginalCosts

public void resetToOriginalCosts()
Schreibt die gesicherten Kosten des Graphen zurueck und stellt so dessen Urzustand wieder her.


close

public void close()

overrideCost

public void overrideCost(int segmentId,
                         float cost,
                         boolean reverse)
Ueberschreibt die Kosten genau einer Edge.

Parameters:
segmentId - int Id des Segments (implizit Edge)
cost - float neue Kosten.
reverse - Original- oder Rueckwaers-Segment (implizit Edge)

overrideCostsFromPgBinary

public void overrideCostsFromPgBinary(java.io.File inFile)
Liest ein Postgres-Binary-Export-File und modifiziert die Kosten des Graphen aufgrund dieser Daten.

Die Daten muessen folgendes Spalten-Format einhalten, wobei die Spaltennamen selbst nicht von Bedeutung sind. Es muss lediglich sicher gestellt sein, dass die IDs der Segmente mit denen des Graphen uebereinstimmen. Sie brauchen jedoch weder vollstaendig noch aufsteigend sortiert sein.

Hier ein Beispiel eines pgplSql-Aufrufs:

COPY (SELECT id, cost, reverse_cost FROM hh_2po_4pgr) TO 'c:/test.bin' WITH BINARY;

Parameters:
inFile - File Postgres-Binary-File.

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