de.bsvrz.kex.bwsin.konfig
Class ImportNetz

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by java.util.TreeMap<String,Verbindungspunkt>
          extended by de.bsvrz.kex.bwsin.konfig.ImportNetz
All Implemented Interfaces:
Serializable, Cloneable, Map<String,Verbindungspunkt>, NavigableMap<String,Verbindungspunkt>, SortedMap<String,Verbindungspunkt>

public class ImportNetz
extends TreeMap<String,Verbindungspunkt>

Netzrepräsentation des zu importierenden Netzes auf der Basis der Verbindungspunkte. Über diese Klasse können die Straßenabschnitte und die inneren Straßensegmente gebildet werden. Das Netz wird zunächst mit den Straßenelementen der OKSTRA- Datenbasis initialisiert. Die Straßenelemente werden dabei entsprechend ihrer Verkehrsrichtung den Verbindungspunkten zugeordnet. Straßen- elemente, die in beiden Verkehrsrichtungen definiert sind, werden gedoppelt. Die gebildeten Straßenabschnitte werden ebenfalls den Verbindungspunkten zugewiesen. Über den Straßenabschnitte können dann die inneren Straßensegmente durch Bildung der Routen gefunden werden.

Version:
$Id: ImportNetz.java 10402 2008-07-10 09:07:00Z gieseler $
Author:
BitCtrl Systems GmbH, Gieseler
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
 
Constructor Summary
ImportNetz(Okstra okstradb)
          Konstruktor aus OKSTRA-Datenbasis.
 
Method Summary
 List<StrassenAbschnitt> erzeugeStrassenabschnitte()
          Bildet Straßenabschnitte aus zusammengehörenden Straßenelementen über den Verbindungspunkten.
 StrassenAbschnitt findeAssAnkommend(String vpunktid)
          Sucht ein an einem Verbindungspunkt ankommendes ASS.
 ArrayList<Route> findeInnereStrassenSegmente(StrassenAbschnitt startabschnitt)
          Findet die inneren Straßensegmente beginnend bei einem Straßenabschnitt.
 List<StrassenAbschnitt> getNachfolger(StrassenAbschnitt abschnitt)
          Bestimmt die Nachfolger eines Abschnittes.
 StrassenAbschnitt getVorgaenger(StrassenAbschnitt strassenAbschnitt)
          Bestimmt einen noch nicht zugeordneten Vorgängerabschnitt zu einem Abschnitt.
 boolean istNeuerAnfangAusVerbotenerFahrbeziehung(StrassenAbschnitt abschnitt)
          Bestimmt, ob ein Abschnitt ein gültiger Anfang eines Straßen- segmentes aus einer verbotenen Fahrbeziehung ist.
 
Methods inherited from class java.util.TreeMap
ceilingEntry, ceilingKey, clear, clone, comparator, containsKey, containsValue, descendingKeySet, descendingMap, entrySet, firstEntry, firstKey, floorEntry, floorKey, get, headMap, headMap, higherEntry, higherKey, keySet, lastEntry, lastKey, lowerEntry, lowerKey, navigableKeySet, pollFirstEntry, pollLastEntry, put, putAll, remove, size, subMap, subMap, tailMap, tailMap, values
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, isEmpty, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode, isEmpty
 

Constructor Detail

ImportNetz

public ImportNetz(Okstra okstradb)
           throws ImportException
Konstruktor aus OKSTRA-Datenbasis. Es wird ein Netz aus den Verbindungspunkten der OKSTRA-Datenbasis und den Straßenelementen erzeugt. Die Zuordnung der Straßenelemente erfolgt entsprechend ihrer Verkehrsrichtung, d.h. bei Straßenelementen mit der Verkehrsrichtung 'GEGEN_STATIONIERUNGSRICHTUNG' werden die Ver- bindungspunkte getauscht. Straßenelemente mit Verkehrsrichtung 'BEIDE_RICHTUNGEN' werden ge- doppelt und ein Element für jede Richtung in das Netz integriert.

Parameters:
okstradb - Okstra
Throws:
ImportException - bei Ausnahmen
Method Detail

erzeugeStrassenabschnitte

public List<StrassenAbschnitt> erzeugeStrassenabschnitte()
Bildet Straßenabschnitte aus zusammengehörenden Straßenelementen über den Verbindungspunkten.

Returns:
Liste von StrassenAbschnitten

findeAssAnkommend

public StrassenAbschnitt findeAssAnkommend(String vpunktid)
Sucht ein an einem Verbindungspunkt ankommendes ASS.

Parameters:
vpunktid - Feature-ID des Verbindungspunktes
Returns:
Straßenabschnitt oder null, wenn kein ankommendes ASS existiert

findeInnereStrassenSegmente

public ArrayList<Route> findeInnereStrassenSegmente(StrassenAbschnitt startabschnitt)
Findet die inneren Straßensegmente beginnend bei einem Straßenabschnitt. Es werden alle Verbindungen ausgehend von dem Straßenabschnitt gesucht, bis entweder ein äußeres Straßenelement erreicht wird oder kein weiterer Straßenabschnitt mehr folgt. Das Ergebnis ist eine Liste von Routen, wobei jede Route durch eine Liste von Straßenabschnitten gebildet wird. Die berechneten Routen werden auf enthaltene verbotene Fahrbeziehungen getestet und bei Bedarf korrigiert. Die Routen werden am Ende geordnet. Die Ordnung wird durch den über die Methode ImportNetz erzeugten Comparator bestimmt.

Parameters:
startabschnitt - Straßenabschnitt, mit dem das Routing beginnt
Returns:
Liste von Routen

getNachfolger

public List<StrassenAbschnitt> getNachfolger(StrassenAbschnitt abschnitt)
Bestimmt die Nachfolger eines Abschnittes.

Parameters:
abschnitt - Der Straßenabschnitt, dessen Nachfolger bestimmt werden sollen
Returns:
die Liste aller Nachfolger

getVorgaenger

public StrassenAbschnitt getVorgaenger(StrassenAbschnitt strassenAbschnitt)
Bestimmt einen noch nicht zugeordneten Vorgängerabschnitt zu einem Abschnitt.

Parameters:
strassenAbschnitt - Abschnitt, zu dem der Vorgänger bestimmt werden soll
Returns:
nicht zugeordneter Vorgängerabschnitt oder null, falls kein Vorgänger gefunden werden kann

istNeuerAnfangAusVerbotenerFahrbeziehung

public boolean istNeuerAnfangAusVerbotenerFahrbeziehung(StrassenAbschnitt abschnitt)
Bestimmt, ob ein Abschnitt ein gültiger Anfang eines Straßen- segmentes aus einer verbotenen Fahrbeziehung ist.

Parameters:
abschnitt - StrassenAbschnitt
Returns:
true, wenn der Abschnitt ein gültiger Anfang eines Straßen- segmentes aus einer verbotenen Fahrbeziehung ist, sonst false