Mittwoch, 12. August 2009

Routenplaner selbst programmieren

Tja, wenn man nur Zeit hätte … In letzter Zeit hat mich wieder die Lust gepackt, dem Rechner selbst neue Dinge beizubringen. Ich habe da so ein kleines Projekt, in dem ich einfach aus Spaß ein bisschen mit Routenplanung herumprobieren möchte.
In ganz ferner zukunft könnte daraus vielleicht einmal eine iPhone-Applikation werden, aber davon bin ich noch sehr weit entfernt.
Wie fängt man sowas an? Natürlich braucht man erst einmal Kartendaten. Dazu bietet sich das OpenStreetMap-Projekt an. Leider ist das XML, das dort Angeboten wird, für die Verarbeitung in einem Routenplaner zunächst einmal sehr ungeeignet und muss intern erst in eine halbwegs passende Struktur gebracht werden. Und allein Deutschland sind > 4 GB XML. Das sinnvoll zu verarbeiten ist nicht die leichteste Aufgabe.
Erste Schritte habe ich vor ein paar Monaten mit Perl gemacht. Quick and dirty, kann routen, ist aber sehr ineffizient. Natürlich habe ich aus Spaß an der Freude erst einmal mit einem eigenen Algorithmus experimentiert, aber der A*-Algorithmus dürfte dann eben doch die sinnvollere Alternative sein.
Jetzt hat es mich wieder gepackt, und jetzt wird das ganze dann gleich in Cocoa umgesetzt. Leichter gesagt als getan, denn ich habe in Cocoa (und überhaupt in ObjC) noch nicht viel gemacht – eine einzige kleine Applikation, um genau zu sein, und das war vor einem Jahr.
Alles wieder neu lernen, also. Bis jetzt kann das Programm nur XML einlesen und in eine halbwegs taugliche Datenstruktur übersetzen. Als das fertig war, habe ich Core Data entdeckt, und nachdem ich meine Datenstrukturen ja auch wieder abspeichern muss, wird das wohl das Mittel der Wahl sein. Also wieder von vorne. Bin gespannt, was daraus wird.
Zeit müsste man eben haben. Mit einem kleinen Kind zu Hause kann man nicht mal eben ein Wochenende durchprogrammieren, da bleiben nur die Abende – und die Frau will ja auch etwas von mir haben. ;-) Nicht, dass ich meine kleine Familie nicht schätze, im Gegenteil, allein sein möchte ich nicht mehr. Aber manchmal wäre etwas mehr Zeit für Geek-Abenteuer eben doch ganz nett.

Keine Kommentare:

Kommentar posten