Endlich bin ich mit meinem Stolpersteine Projekt vorangekommen. Und zwar in den letzten Tagen schon mit recht großen Schritten wie ich finde (auch dank der Hilfe von Kai Matzdorf, danke für die Kettle Einführung!)
Seit März dümpelte es mit einem Layer von vier Steinen, der auf einer manuell erstellten JSON Struktur basierte. Nachdem ich über die flickr Gruppe Stolpersteine unlängst von jemandem angeschrieben wurde, war es Zeit mal Gas zu geben und der Sache etwas mehr Leben einzuhauchen.
Außerdem ist airme auf dem BigBoyToy echt geil für das Projekt – knipsen und geo-getagged bei flickr hochladen. Hatte ich erwähnt, dass ich das BigBoyToy mag?
Was können wir vorweisen?
1. Basis ist ein Excel Sheet mit Adressen von fotografierten Stolpersteinen , welches ich im Oktober 2007 angefangen habe zu erstellen. Über Kettle wird das Sheet (genauer die CSV Version) in eine SQL Datenbank geladen.
2. Die Adressdaten (also Straße + Hausnummer) werden per Javascript in eine für die Google-Api konforme URL geparsed (auch hier wieder – Danke Kai!) über den Step “Webservice” wird dann Google abgefragt (aber immer schön zeitverzögert – ein weiteres Danke Kai!).
3. Was Google uns zurückliefert ist entweder ein JSON oder ein XML (kann bei der Anfrage definiert werden), egal wofür wir uns entscheiden, Kettle kommt mit dem result als array nicht klar und speichert es als String ab.
4. Aber auch nicht schlimm, denn per Javascript können ja aus dem String die relevanten Informationen rausgefiltert werden (Stichwort substring), also haben wir nach diesem Schritt dann die Geodaten für jeden Stolperstein vorliegen und machen ein update unserer SQL Datenbank.
5. Aus der SQL Datenbank generieren wir dann noch über einen XML Output die Datei auf welcher der Layer beruht.
Fertig…
Momentan stelle ich mir die Frage, ob JSON oder XML das bessere Format für das ganze wäre.
Da ich per PHP aus dem XML eine JSON Datenstruktur erstelle, welche die Punkte auf der Karte beschreibt klingt das ein wenig nach “durch den Arsch am Herzen operiert” den ein JSON hätte ich gleich von der API als result kriegen können.
Vorteil im XML sehe ich in der Integration in Kettle, da ist der XML Output eben vorhanden andererseits könnte ich die php Umwandlung XML -> JSON auch gut per JS in Kettle erledigen. Vermutlich tut es sich nicht viel.
Spannend ist die Frage, wie groß der Unterschied der Dateigrößen ist und ob ich mit XML die Daten einfacher in andere Anwendungen integrieren kann.
Mir schwebt z.B. der Einsatz von WordPress als CMS vor, dass automatisch für jeden Datensatz eine Webseite mit den Eckdaten wie Name, Adresse erstellt.
Auch geplant ist die Möglichkeit, dass per Formular von extern Stolpersteine angelegt werden, wobei mir der Layer aktuell noch zu instabil für UGC ist – ein Fehler in einem XML Element und der ganze Layer geht kapeister…
Tags: AJAX, JSON vs. XML, Stolpersteine —
Leave a Reply