Ganz viele Änderungen

In letzter Zeit hat sich noch so einiges auf dem Stadtplan getan. Ein paar Sachen sind für den Otto-Normal-Nutzer nicht sofort ersichtlich. Einige werden bereits aktiv genutzt. Worum gehts:

Modularisierung

Von den meisten unbemerkt ist die zunehmende Modularisierung vom Stadtplan. Mittlerweile sind drei Plugins umgesetzt, bzw. vorher fest im Stadtplan verankertes, aber doch Ilmenau typisches in ein Plugin gepresst worden. Die Plugins sind:

  • Technische Universität
  • Wanderwegenetz
  • Fehlermeldung

Die Raum- und Gebäudeübersicht der Technischen Universität war ja schon bereits bei einem der letzten Artikel zum Stadtplan, teilweise in ein Plugin gegossen. Nun sind wirklich alle Routinen da hinein geflossen. Von der Datenauswertung und -installation über die Crawlerdarstellung bis hin zum Nutzerinterface.

Dieses Plugin hat mir Anfang des Semesters auch einen riesigen Besucheransturm beschert. Vorher lag ich bei im Schnitt 20 Nutzern täglich. Wobei am Wochenende eher 15 und unter der Woche meist 20-25 Besucher da waren. Nur einmal knackten wir bisher die magische Marke von 40 Besuchern. Am 08. Oktober setzte ich mich vormittags an den Rechner, startete meinen Browser und war leicht überrascht. Der dort eingebundene Piwik-Counter meinte, seit Mitternacht wären bereits 39 Besucher da gewesen… Habs erstmal nicht geglaubt, aber es war wirklich so. Dieser Tag endete mit 69 Besuchern und auch folgenden Tage blieben bei über 50 Nutzern. Die meisten suchten im übrigen nach Unigebäuden und -räumen. Irgendwann muss auch irgendwer einen Link bei Facebook gepostet haben, denn seit dieser Woche bekomm ich auch von dort immer wieder Besuch. Mittlerweile pendelt sich die Besucherzahlen wieder auf ein Normalmaß ein, wobei es nun durchschnittlich 30 sind.

Diese Zahlen sind für mich großartig und bestätigen einfach nur, dass noch mehr, außer mir, einen detailierten Stadtplan für Ilmenau benötigen. Natürlich komme ich an die 100 Besucher des Stadtplans der Stadt nicht ran…

Wanderwege

Das zweite Plugin bindet die Wanderwege in den Stadtplan ein. Bereits im Frühjahr wurde immer wieder nach bekannten Wanderwegen auf der Seite gesucht. Da die Wanderwege via Relationen in OSM ziemlich gut abgebildet sind, wollte ich sie nun auch hier einbinden. Aber ersteinmal muss man an sie herankommen. Ich werte die OSM-Daten für Ilmenau wie folgt aus:

  1. Thüringen-Snapshot von geofabrik.de laden.
  2. Ilmenau via osmconvert ausschneiden
  3. Import mittels osm2pgsql in eine Postgre-Datenbank
  4. Datenauswertung in MySQL-Datenbank

Leider werden die Relationen für die Wanderwege nicht bereits in die Postgres-Tabellen, welche schon vorgefilterte Daten beinhalten, geschrieben, weswegen ich, zumindest für die Wegzuordnung, direkt auf die Rohdaten zugreifen muss. Mittels folgendem SQL-Befehl suche ich erstmal alle relevanten Datensätze:
[cc lang=’postgresql‘]
SELECT * FROM (
SELECT id,members,parts,tags,pending, generate_subscripts(tags,1) AS s FROM th_osm_rels
) AS foo
WHERE tags[s] = ‚route‘ AND ( tags[s+1] = ‚hiking‘ OR tags[s+1] = ‚foot‘ OR tags[s+1] = ‚mtb‘ OR tags[s+1] = ‚bicycle‘ OR tags[s+1] = ’ski‘ OR tags[s+1] = ’nordic‘ );
[/cc]
Heraus kommen Datensätze mit den Tags und den Mitgliedern der Relation. Relationen, die keine Wege als Mitglied haben, lasse ich außen vor (ich weiß, das ich dadurch einige Relationen vergessen könnte, aber das Risiko gehe ich ein). Die übriggebliebenen Relationen werden mit all ihren Tags und einer Verknüpfung zu all ihren Wegen in Ilmenau in der Datenbank gespeichert.

Wer sich mal durchklickt wird etwas merken. Die stadtübergreifenden Wanderwege enden immer kurz hinter der Gemeinde. Das liegt daran, dass ich nur die Daten Ilmenaus auswerte. Hat auch einen ganz einfachen Grund: Früher habe ich alle Daten Thüringens ausgewertet und mittels GIS-Funktion bei jeder Datenbankabfrage gefragt, ob die Datensätze in Ilmenau liegen. Dabei war die Gefahr, dass mal die Gemeindegrenzen kaputt sind und gar nix mehr geht. Außerdem dauerte dieser Prozess Stunden. Jetzt, wo ich nur auf der Datenbasis arbeite, die soundso rein soll, dauert es nur noch Minuten! Was für eine Performanceverbesserung.

Das Plugin soll im übrigen noch verfeinert werden. In OSM sind standardisierte Beschreibungen der Wanderwegezeichen bzw. Links zu Grafiken davon hinterlegt. Die Beschreibungen versuche ich mal mit JavaScript selber zu malen und bei den entsprechenden Wanderwegen mit einzublenden. Ich habe erst vor kurzen bemerkt wie einfach und genial es ist mit JavaScript Vektorgraphiken zu zaubern. Ein kleines Experiment könnt ihr unter stadtplan-ilmenau.de/subway/subwayMap1.html finden. Hier ist das Ilmenauer Stadtbusnetz via JQuery Subway-Vorlage von Nik Kalyani (kalyani.com) abgebildet. Ich habe die Vorlage etwas erweitert, um auch Richtungsgebundene Haltestellen einzubinden und war begeistert, wie einfach das ist.

Fehlermelder

Er wurde ja schon entdeckt. Der Fehlermeldebutton. Ich schrieb bereits, dass ich an ihm arbeite. Nun ist er da. Technisch gesehen, sammle ich vom Nutzer die Koordinaten, wo der Fehler besteht, entweder dadurch, dass er beim entsprechenden Objekt auf den Link in der Datenblase klickt oder in dem er nach einer Alert-Aufforderung an die entsprechende Position auf der Karte klickt. Danach kommt ein kurzes Menü, wo der Nutzer beschreiben soll, was falsch ist. Ursprünglich dachte ich an ein geführtes Formular, wo man sehr genau den Fehler beschreiben kann, aber davon bin ich abgewichen. Zum einen, um die Drei-Klick-Regel umzusetzen (auch wenn sie bewiesenermaßen falsch ist), zum anderen um selber nicht zu viel programmieren zu müssen (Faulheit siegt!). Anschließend wird alles bei osmbugs.org gespeichert.

Die ersten Fehler sind bereits eingetrudelt und größtenteils gefixed.

Achja: Am Ende kann man eine Emailadresse eintragen. Diese bleibt in meiner Datenbank. Nachts lädt sich ein Cronjob den auch angebotenen RSS-Feed zu den Tickets herunter. Gibts eine Änderung, gibts eine Mail mit den aktuellen Ticketdaten.

label, , , ,

Kommentar verfassen