// Angaben von der Eingabe
// Verbindungssuche
$start = Start aus der Eingabe;
$ziel = Ziel aus der Eingabe;
$zwischenhalteins = Zwischenhalt 1 aus der Eingabe;
$zwischenhaltzwei = Zwischenhalt 2 aus der Eingabe;
$elektrifiziert = Elektrifizierte Strecken aus der Eingabe;
// Ankunfts-/Abfahrtstafel
$tafel = Ankunfts-/Abfahrtstafel aus der Eingabe;
// Link zu marudor.de: marudor.de/[Bahnhof] oder [DS100]
// Link zu dbf.finalrewind.org: https://dbf.finalrewind.org/[Bahnhof] oder [IBNR] oder [DS100]
// Link zu bahn.de: https://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?rt=1&start=1&input=[Bahnhof]
// Bahnhofslink
$bahnhofslink = Bahnhofslink aus der Eingabe;
// Link zu bahnhof.de: https://www.bahnhof.de/service/search/bahnhof-de/3464932?query=[Bahnhof]
// Link zu Open Street Map: https://www.openstreetmap.org/search?query=[Bahnhof] oder [Betriebsstelle]
// Link zu Google Maps: http://maps.google.de/maps?f=q&hl=de&q=[Bahnhof] oder [Betriebsstelle]
// Angaben zum Zug
$zughoechstgeschwindigkeit = Höchstgeschwindigkeit aus der Eingabe;
$zugbeschleunigung = Beschleunigung aus der Eingabe;
$bremsverzoegerung = Bremsverzögerung aus der Eingabe;
$kmhfaktor = Prozent der Streckenhöchstgeschwindigkeit aus der Eingabe;
$kmhfaktorzugzwei = Prozent der Streckenhöchstgeschwindigkeit aus der Eingabe;
// Angaben zur Strecke
$anzeigestreckennummer = Streckennummer aus der Eingabe;
$anzeigestreckenhoechstgeschwindigkeit = Streckenhöchstgeschwindigkeit aus der Eingabe;
$anzeigestreckenkm = Strecken-Kilometer aus der Eingabe;
// Ausgabe
Ausgabe auf einer Karte
?
// Ausgabe in Tabelle
Tabellenanfang
Spalte ab/an
Spalte Betriebsstelle
Spalte Uhrzeit Zug 1
Spalte Uhrzeit Zug 2
// Streckennummer anzeigen?
if ($anzeigestreckennummer == "ja")
{
Spalte Streckennummer;
}
// Streckenhöchstgeschwindigkeit anzeigen?
if ($anzeigestreckenhoechstgeschwindigkeit == "ja")
{
Spalte Streckenhöchstgeschwindigkeit;
}
// Strecken-Kilometer anzeigen?
if ($anzeigestreckenkm == "ja")
{
Spalte Strecken-Kilometer;
}
// Start in Tabelle anzeigen
$tafel + $start;
$start;
$uhrzeit;
// Streckennummer anzeigen?
if ($anzeigestreckennummer == "ja")
{
Streckennummer;
}
// Streckenhöchstgeschwindigkeit anzeigen?
if ($anzeigestreckenhoechstgeschwindigkeit == "ja")
{
Streckenhöchstgeschwindigkeit;
}
// Strecken-Kilometer anzeigen?
if ($anzeigestreckenkm == "ja")
{
Strecken-Kilometer;
}
// Verbindungssuche
???
// While-Schleife
while (Betriebstellen auf der Strecke aus der Verbindungssuche)
{
// Angaben von der Strecke
// Aktuelle Betriebsstelle
$aktuellebetriebsstelle = Betriebsstelle;
// Prüfe, ob aktuelle Betriebsstelle ein Bahnhof ist
???
// Streckennummer
$streckennummer = Streckennummer;
// Strecken-Kilometer
$streckenkm = Strecken-Kilometer;
// km/h-Vergleich
$kmhvergleich = Vergleich aktueller Streckenhöchstgeschwindigkeit mit der von dem Abschnitt davor;
// Entfernung
$entfernung = Länge des aktuellen Streckenabschnitts;
// Streckenhöchstgeschwindigkeit des aktuellen Abschnitts speichern
$streckengeschwindigkeit = Streckenhöchstgeschwindigkeit;
// Zug 1
// Höchstgeschwindigkeit vom Zug 1 im aktuellen Abschnitt
$zugeinsgeschwindigkeitaktuell = $streckengeschwindigkeit * $kmhfaktor;
// Prüfe Geschwindigkeit des Zuges 1
if ($zughoechstgeschwindigkeit > $zugeinsgeschwindigkeitaktuell)
{
$zugeinsgeschwindigkeit = $zugeinsgeschwindigkeitaktuell;
}
else
{
$zugeinsgeschwindigkeit = $zughoechstgeschwindigkeit;
}
// Zug 2
// Höchstgeschwindigkeit vom Zug 2 im aktuellen Abschnitt
$zugzweigeschwindigkeitaktuell = $streckengeschwindigkeit * $kmhfaktorzugzwei;
// Prüfe Geschwindigkeit des Zuges 2
if ($zughoechstgeschwindigkeit > $zugzweigeschwindigkeitaktuell)
{
$zugzweigeschwindigkeit = $zugzweigeschwindigkeitaktuell;
}
else
{
$zugzweigeschwindigkeit = $zughoechstgeschwindigkeit;
}
// Beginn Fahrzeitberechnung
// Entfernung gleich 0?
if ($entfernung == 0)
{
$zugeinszeit == 0;
$zugzweizeit == 0;
}
// Aktuelle Geschwindigkeit größer als von der Zeile davor?
if ($kmhvergleich == "mehr")
{
// Wenn aktuelle Geschwindigkeit größer als von der Zeile davor
// Zug 1
// Phase 1: Beschleunigung
$zugeinsbeschleunigungszeit = $zugeinsgeschwindigkeit /(3.6 * $zugbeschleunigung);
$zugeinsbeschleunigungszeit = round ($zugeinsbeschleunigungszeit;0);
$zugeinsbeschleunigungsweg = (($zugeinsgeschwindigkeit/3.6)*($zugeinsgeschwindigkeit/3.6))/1000;
// Phase 2: Restweg
$zugeinsrestweg = $entfernung - $zugeinsbeschleunigungsweg;
$zugeinsrestwegzeit = $zugeinsrestweg / ($zugeinsgeschwindigkeit/3.6);
$zugeinsrestwegzeit = round ($zugeinsrestwegzeit;0);
$zugeinszeit = $zugeinsbeschleunigungszeit + $zugeinsrestwegzeit;
// Zug 2
// Phase 1: Beschleunigung
$zugzweibeschleunigungszeit = $zugzweigeschwindigkeit /(3.6 * $zugbeschleunigung);
$zugzweibeschleunigungszeit = round ($zugzweibeschleunigungszeit;0);
$zugzweibeschleunigungsweg = (($zugzweigeschwindigkeit/3.6)*($zugzweigeschwindigkeit/3.6))/1000;
// Phase 2: Restweg
$zugzweirestweg = $entfernung - $zugzweibeschleunigungsweg;
$zugzweirestwegzeit = $zugzweirestweg / ($zugzweigeschwindigkeit/3.6);
$zugzweirestwegzeit = round ($zugzweirestwegzeit;0);
$zugzweizeit = $zugzweibeschleunigungszeit + $zugzweirestwegzeit;
}
// Aktuelle Geschwindigkeit kleiner als von der Zeile davor?
if ($kmhvergleich == "weniger")
{
// Wenn aktuelle Geschwindigkeit kleiner als von der Zeile davor
// Zug 1
// Phase 1: Bremsen
$zugeinsbremszeit = $zugeinsgeschwindigkeit/(3.6 * $bremsverzoegerung);
$zugeinsbremszeit = round($zugeinsbremszeit,0);
$zugeinsbremsweg = (($zugeinsgeschwindigkeit/3.6)*($zugeinsgeschwindigkeit/3.6)/(2 * $bremsverzoegerung))/1000;
// Phase 2: Restweg
$zugeinsrestweg = $entfernung - $zugeinsbremsweg;
$zugeinsrestwegzeit = $zugeinsrestwegzug/($zugeinsgeschwindigkeitzug/3.6);
$zugeinsrestwegzeit = round ($zugeinsrestwegzeit,0);
$zugeinszeit = $zugeinsbremszeit + $zugeinsrestwegzeit;
// Zug 2
// Phase 1: Bremsen
$zugzweibremszeit = $zugzweigeschwindigkeit/(3.6 * $bremsverzoegerung);
$zugzweibremszeit = round($zugzweibremszeit,0);
$zugzweibremsweg = (($zugzweigeschwindigkeit/3.6)*($zugzweigeschwindigkeit/3.6)/(2 * $bremsverzoegerung))/1000;
// Phase 2: Restweg
$zugzweirestweg = $entfernung - $zugzweibremsweg;
$zugzweirestwegzeit = $zugzweirestwegzug/($zugzweigeschwindigkeitzug/3.6);
$zugzweirestwegzeit = round ($zugzweirestwegzeit,0);
$zugzweizeit = $zugzweibremszeit + $zugzweirestwegzeit;
}
// Gleiche Geschwindigkeit
if ($kmhvergleich == "gleich")
{
// Zug 1
$zugeinszeit = ($entfernung / $zugeinsgeschwindigkeit) * 60 * 60;
$zugeinszeit = round ($zugeinszeit,0);
// Zug 2
$zugzweizeit = ($entfernung / $zugzweigeschwindigkeit) * 60 * 60;
$zugzweizeit = round ($zugzweizeit,0);
}
// Fahrzeit
// Zug 1
$zugeinsaddierezeit = $zugeinsgesamtzeit ."+" . $zugeinszeit . " seconds";
$zugeinsgesamtzeit = date('H:i:s', strtotime($zugeinsaddierezeit, strtotime($uhrzeit)));
$zugeinszeitausgabe = $zugeinsgesamtzeit;
// Zug 2
$zugzweiaddierezeit = $zugzweigesamtzeit ."+" . $zugzweizeit . " seconds";
$zugzweigesamtzeit = date('H:i:s', strtotime($zugzweiaddierezeit, strtotime($uhrzeit)));
$zugzweizeitausgabe = $zugzweigesamtzeit;
// Ende Fahrzeitberechnung
// Ausgabe
if ($aktuellebetriebsstelle = Bahnhof)
{
$tafel + $aktuellebetriebsstelle;
}
else
{
// leere Spalte;
}
// Spalte Betriebsstelle: Aktuelle Betriebsstelle ist Bahnhof
if ($aktuellebetriebsstelle = Bahnhof)
{
$bahnhofslink + $aktuellebetriebsstelle;
}
// Spalte Betriebsstelle: Aktuelle Betriebsstelle kein Bahnhof und Bahnhofslink nicht bahnhof.de
if ($aktuellebetriebsstelle != Bahnhof AND $bahnhofslink != bahnhof.de)
{
$bahnhofslink + $aktuellebetriebsstelle;
}
// Spalte Zeit Zug 1
$zugeinszeitausgabe;
// Spalte Zeit Zug 2
$zugzweizeitausgabe;
// Streckennummer anzeigen?
if ($anzeigestreckennummer == "ja")
{
$streckennummer;
}
// Streckenhöchstgeschwindigkeit anzeigen?
if ($anzeigestreckenhoechstgeschwindigkeit == "ja")
{
$streckengeschwindigkeit;
}
// Strecken-Kilometer anzeigen?
if ($anzeigestreckenkm == "ja")
{
$streckenkm;
}
// Ende While-Schleife
}
// Ende Tabelle
Tabellenende