Spaghetti,
nichts als Spaghetti! Hier finden sich manchmal Fingerübungen und unstrukturierter Code. Spaghetti eben.
Track - a simple stupid midlet using JSR 179.
Track ist ein kleines Programm für den BlackBerry 8800 oder den BlackBerry Pearl, der dann freilich via Bluetooth mit einem GPS-Empfänger verbunden werden müsste.
Es benutzt den eingebauten (oder einen via Bluetooth angebundenen) GPS-Chip, um die Position des Gerätes in einem wahlfreien Intervall aufzuzeichnen. Dies passiert mit JSR 179. Zusätzlich kann Track so konfiguriert werden, dass es jeden n-ten Fix an einen Server überträgt.
Alle gewonnene Datensätze (aus den Attributen Longitude, Latitude, Höhe, Speed, Kurs, Zeitstempel bestehend) persistiert das Gerät via RMS und bietet die Möglichkeit, selbige in die Formate GPX und KML auf die SD-Card des Gerätes zu exportieren (JSR 75). Einen Mac benutzend, kann man sich die Tracks komfortabel mit dem Medienbrowser des BlackBerry auf selbigen senden.
Track bietet die Möglichkeit folgende - die Positionsnahme und den Versand zum Server betreffende - Voreinstellungen zu editieren und zu speichern:
- hostname
- skriptname
- userid
- password
- gpsinterval
- senderinterval
Letzendlich sendet Track einen Request in der Form 'http://hostname/skriptname?mmsi=userid&pass=password&lat=xx&lon=xx&sog=xx&cog=xx&time=xx' - es obliegt dem geneigten Anwender, an die entsprechende Stelle ein sinnhaftes Skript zu legen, das den Payload abnimmt und verwertet. Gleiches gilt für die Verwendung der exportierten Tracks: Spielereien mit Google Earth? Die Fotos der Digitalkamera mit GPS-Daten taggen? Depends on your mood.
Keep in mind: Track ist momentan ein Prototyp! Es läuft, aber ist weit entfernt von einer fertigen Software! Weder testet es laufend die Verfügbarkeit des GPS-Signals, noch die GPRS-Abdeckung! Zudem trifft es an der ein oder anderen Stelle eventuell unzulässige Annahmen: Momentan geht es beim Export nach *.gpx oder *.kml zum Beispiel davon aus, dass sich eine SD-Karte im Gerät befindet! Eventuelle Exceptions werden zwar gefangen und brav reportiert, trotzdem ist Track weit weg von einer 'richtigen' Software!
Track ist auf der einen Seite eine Fingerübung, eine akademische Spielerei. Auf der anderen Seite ist es mein erstes MIDlet (okay, es erweitert UIApplication...), hat mir die Welt meines 5 Wochen alten BlackBerry geöffnet, mich viel lernen lassen.
Dank geht an RIM für IDE und gar nicht so zugenageltes API, zahlreiche Webseiten zur Midlet-Programmierung und an 'mother vowe' for inspiring me! :-)
Track gibt es hier (20 kB, zip, Version 0.23pre-alpha) oder hier (OTA, Version 0.23, 65 kB) - in Kürze kommen Changelog und TODO-Liste auf die Seite... Und natürlich freue ich mich über Kommentare!
Bugs/Issues/Comments:
- Track kann momentan nur über das Kontextmenu gesteuert werden. Keine Buttons, reduziertes GUI.
-
Entweder Track macht irgendwo Quatsch bei den Höhenangaben, oder ich lebe deutlich höher als geglaubt! :-)Update: Höhenangaben im GPS haben nichts mit dem Meeresspiegel zu tun, bessere GPS-Empfänger benutzen Korrekturtabellen. Zudem ist die Genauigkeit der Höhenangabe schwer von der Anzahl der Satelliten und deren Höhe über dem Horizont abhängig! -
Momentan erlaubt Track es nicht, den Dateinamen für den Datei-Export zu wählen. Es wird immer eine Datei test.gpx oder test.kml im Root der SD-Karte erzeugt, die eine evtl. vorhandene überschreibt!Gefixt seit 0.23. Track generiert nun eine Datei 'track-YYYYMMDDHHMMSS.[gpx|kml]', wobei der Zeitstempel den Zeitpunkt des Schreibens trägt. Die Datei wird im Root der SD-Karte erzeugt (wenn vorhanden). Ansonsten im Root des internen Speichers. - Momentan ist das Verfahren zum Holen der GPS-Koordinaten nicht parameterisiert. JSR 179 erlaubt drei unterschiedliche Verfahren (cellsite, assisted, autonomous). Track benutzt nur 'autonomous', ergo die genaueste (aber langsamste) Positionsbestimmung mit dem GPS-Chip.
-
Momentan werden nicht alle Tags des *.gpx-Files korrekt gefüllt (name, desc, etc.). Es wird aber ein File erzeugt, das Google Earth interpretiert.Seit 0.23 fehlt nur noch die Distanz, das läuft auf Berechnungen am rechtwinkligen Dreieck (unter Vernachlässigung der Erdkrümmung?) hinaus... - Track verwendet keine konditionalen Menüs: Etwaige konsistenz-beeinträchtigende Operationen werden aber gefangen.
-
Track's Export ist der einzige Teil des ganzen Programms, der nicht 'threaded' ist. Dadurch ist es beim Export grösserer Datenmengen (> 100 Records) nicht sonderlich reaktiv - muss ich schleunigst ändern!Gefixt mit 0.23. Track ist jetzt etwas gesprächiger. - Track sendet momentan nicht bei Tester #1. :-( Carrier specific mumbo jumbo. Scheint mit den TCP/APN-Einstellungen zusammenzuhängen. Seit 0.23 hat Track eine Voreinstellung (Checkbox 'Debug'), die es erlaubt, den sendespezifischen Teil zu loggen. Die Ergebnisse des Loggings werden beim Beenden von Track ins Clipboard kopiert...
-
Track merkt sich "Sender's interval" in den Voreinstellungen nicht.Gefixt seit 0.19 -
Track benennt die Einheit für das Sender-Intervall mit (sec). Mumpitz!Gefixt seit 0.23.
touchGPS - ein Plugin für iPhoto 8.
touchGPS ist ein kleines Plugin für iPhoto 8, das auf Grundlage des kürzlich veröffentlichten Export-SDKs arbeitet, wiewohl es eigentlich keine Dateien exportiert. :-)
Es bietet die Möglichkeit, momentan ausgewählten JPEGs die GPS-Informationen aus einer zuvor geladenen GPX-Datei in den EXIF-Header zu schreiben. Dazu ordnet es die Dateien anhand Ihrer EXIF-Zeitstempel den jeweils "dichtesten" Zeitstempeln im GPX-File zu. Eine maximal erlaubte Zeitdifferenz zu den GPX-Positionen kann angegeben werden.
Momentan nicht implementiert ist ein Eingabemöglichkeit für Zeit-Offsets - GPX-erstellender GPS-Empfänger und Kamera sollten also halbwegs zeitsynchron sein. Das Plugin ist nicht sonderlich gesprächig - es schwatzt aber auf die Konsole. Da iPhoto alle Metadaten des Bildes beim Import in seinen Datentank schreibt (und von dort die Daten beim Anzeigen der Bildinfos holt), kann es selbige für ein Foto erst anzeigen, wenn man das Bild erneut importiert.
Zum Schreiben der EXIF-Informationen bedient es sich des Perl-Programms "exiftool" von Phil Harvey, das man hier findet. Dort gibt es auch einen Installer für Mac OS X, der das ganze komfortabel installiert. Auch ohne touchGPS ein wertvolles Tool!
Achtung! Das Plugin ist eigentlich nur für den persönlichen Gebrauch geschrieben worden, und noch nicht fertig (aber schon für Deutsch & Englisch lokalisiert). Obwohl es hier im unauffälligen Einsatz ist, empfehle ich Vorsicht im Umgang mit - meist wertvollen - eigenen Bildern! Ich lehne es auf jeden Fall ab, für etwaigen Datenverlust im Zusammenhang mit touchGPS die Verantwortung zu übernehmen!
Echte Männer finden hier eine GPX-Beispieldatei, und hier ein Beispielbild.
Alles gelesen? "exiftool" installiert? Mit iPhoto 8 gesegnet? Hier gibts touchGPS. Gehört nach ~/Library/Application Support/iPhoto/Plugins.