Reisen und Radtouren
Allgemeine Anmerkungen
Meine Frau und ich reisen hin und wieder mit einer Art Wohnmobil. Ich selbst schätze darüber hinaus Radtouren. Auf dieser Seite stellen wir Aspekte vor, die den beiden Reiseformen gemeinsam sind. Ein wichtiges Thema jeder Reise ist die Unterkunft. Das gilt auch für Fernreisen mit der Eisenbahn. Ich werde diese Reiseformen als Individualreisen bezeichnen.
Individualreisen kann man von zwei Gesichtspunkten aus planen:
- ausgehend vom Ziel oder Zwischenziel, oder
- bezogen auf die Reiseroute.
Ausgehend von Bonn und vom Reiseziel Gibraltar, das ich im nächsten Jahr mit dem Fahrrad ansteuern wollte, was mir meine Frau letztlich aber nicht erlaubt hat, hatte ich mir von Graphhopper eine Route planen lassen. Nun stellte sich natürlich die Frage, wo preiswerte Übernachtungsmöglichkeiten entlang der Route lägen. Da ich die Planung als GPX-Datei vorliegen hatte, kam ich auf die Idee, die Daten in (m)ein Programm einzulesen und eine XML-Datei solcher Unterkünfte hinzuzuladen. Mit GNavigia steht mir zudem ein Programm zur Verfügung, das ich selbst so weiterentwickle, dass es mir nützlich ist.
Jugendherbergen
Ich hatte auf Reisen, die alle schon mindestens 40 Jahre zurückliegen, Jugendherbergen zu schätzen gelernt. Ich hatte damals auch keine Probleme mit ausgebuchten Häusern. Im Herbst 2024 habe ich daher verschiedene Jugendherbergswerke in Westeuropa angeschrieben und sie um eine XML-Datei der Herbergen gebeten, mindestens Name und geografische Koordinaten. Ich hatte das deutsche Jugendherbergswerk zuerst angeschrieben und bekam tatsächlich eine GPX-Datei, die alles Wissenswerte enthielt, darunter Adresse, E-Mail, Telefonnummer und Webseite. Technisch gesehen wird eine Liste von Wegpunkten (wpt) geliefert, in deren desc(ription)-Tag die Informationen in einer Zeichenkette abgelegt sind.
Etwas übervorsichtig hatte man wohl das Kommentar-Tag (cmt) mit der identischen Zeichenkette befüllt, was ich für diese Datei so belassen habe. Immerhin war das Format soweit brauchbar, dass ich mich für alle anderen Dateien daran orientiert habe.
Zudem muss ich dem Service des deutschen Jugendherbergswerks ein großes Kompliment machen. Die Daten wurden laut Aussage einer Mitarbeiterin von einem Kollegen aufgrund meiner Anfrage aus einer Datenbank generiert. (Bildnachweis: OSM-II)
Noch beeindruckender ist, dass solche Daten überhaupt bereitgestellt werden. Denn alle anderen Herbergswerke bestätigten mir lediglich, dass sie keine solche Liste hätten und mir leider nicht helfen könnten. Also habe ich mir im Internet diejenigen Seiten besorgt, die die Namen der jeweiligen Jugendherbergen samt einem Link auf deren Homepage enthielten. Das Parsen von HTML-Dateien ist bekanntlich nicht trivial, weil immer wieder überflüssige Tags oder unerwartete Zeilenumbrüche auftreten, die manchmal sogar dem Agenten geschuldet sind, der die Daten abruft. Da die Seiten modern sind, bleiben die Probleme aber klein.
Um die Daten der Jugendherbergen auslesen zu können, ist JavaScript erforderlich, das auf der Client-Seite interpretiert wird und das die entscheidenden Daten dynamisch nachlädt. Für diejenigen, die das in .NET nachprogrammieren möchten, habe ich die folgenden Zeilen dokumentiert. Im Resultat res muss man dann «nur noch» nach den Einträgen für Name, Adresse und Koordinaten suchen.
// HTTPWebRequest will not work here (no JS available). // Solution from StackOverflow.com, user missaghi. DateTime dtmStart = DateTime.Now; WebBrowser wb = new WebBrowser(); wb.ScrollBarsEnabled = false; wb.ScriptErrorsSuppressed = true; wb.Navigate(url); while (wb.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); if ((DateTime.Now - dtmStart).TotalSeconds > 10) break; } string res = wb.DocumentText; ... // Unbedingt nach getaner Tat aufräumen! wb.Dispose(); GC.Collect();
Um an alle Daten zu gelangen, muss man gegebenenfalls der «Book Now» Schaltfläche folgen und deren URL mit einem weiteren WebBrowser verarbeiten.
Wer sich mit GNavigia auskennt, kann die beigestellte Datei entpacken, die bereits die Jugendherbergen der nachfolgenden Länder enthält:
GNavigia Datendatei (gepackt).
Für folgende Länder wurden XML-Dateien erzeugt und gepackt:
Campingplätze
Sehr flexibel aber nicht unbedingt dicht an einer Fahrradroute, die sich im Idealfall nicht in der Nähe von großen Städten und Autostraßen abspielt und die den ländlichen Raum mit eher kleinen Ortschaften bevorzugt, sind Campingplätze.
...