Hallo genie,
ich war grad Laufen und habe mir nochmal Gedanken gemacht. Einfügen von 0,0,0 wenn kein GPS Tag vorliegt ist schlecht. Wenn man das gpx File in Google Earth einliest, so springt ja die Route mal weg. Ich habs zwar jetzt noch nicht ausprobiert, in Google Earth einzulesen, werde das aber mal nachholen. Ebenso finde ich, den letzten Geotag zu wiederholen schlecht (so wie ich ursprünglich vorgeschlagen habe). Warum erkläre ich gleich. Ich habe glaube ich ein paar gute Ideen. Lass mich wissen, ob das so Sinn macht:
1. Anwendungsfall: Geo-Logger
Diesen Anwendungsfall hast du ja schon implementiert. Richtig anwendbar wird das allerdings erst sein, wenn das Display und alle anderen CAM-Funktionen abgeschaltet werden können - das hast du ja auch schon geschrieben. Allerdings würde ich keine Geo-Tags schreiben, wenn kein Signal vorliegt.
2. Anwendungsfall: Routen-Logger anhand der gemachten Bilder
Dieser Anwwendungsfall hat den Zweck, eine ganze Route aufzuzeichnen und ist "gröber" als die Geologger-Funktion, allerdings auch Batteriesparender. Dieser Anwendungsfall hat den Sinn, z.B. eine ganze Urlaubsroute zu loggen. Man hat einen Punkt da, wo man ein Bild gemacht hat. Wenn kein GPS-Datum vorliegt, dann gibts auch keinen Eintrag oder vielleicht verspäteten Eintrag (ich komme dazu noch im 3. Anwendungsfall, was verspäteter Eintrag bedeutet). Oft ist es so, dass man an einem Ort mehrere Bilder macht. Diese "doppelten" Punkte würde ich in diese Datei nicht eintragen - kann man sich zumindest überlegen sie nicht einzutragen. Man kann also den letzten Punkt aus der Datei auslesen und mit dem aktuellen Punkt vergleichen:
http://www.koordinaten.de/informationen/formel.shtml Denn die GPS Koordinate schwankt immer etwas. Den Radius könnte man in CHDK-Menü einstellbar machen.
3. Anwendungsfall: verzögerter Eintrag der GPS-Koordinate
Diesen Anwendungsfall würde ich genial finden, wenn du den implementieren könntest. Mir ist es nun schon öfters mal passiert, dass ich alles eingestellt habe an der Kamera und ich nur noch auf das GPS gewartet habe. Besonders unschön, wenn man Leute fotografiert, denn die werden dann ungeduldig. Vorhin habe ich noch geschrieben, es wäre sinnvoll, den letzten bekannten Tag zu verwenden und direkt ins Bild zu schreiben. Noch besser würde ich finden, wenn dann ein Tag in ein File geschrieben wird, sobald eine Position bekannt ist.
Exkurs: Kennst du das Freeware-Tool Geosetter? Es ist und wird von einem deutschen Entwickler programmiert und es gibt ständig Updates davon. Mit diesem Programm kann man Bilder, die nicht geo-getaggt sind, mit einem Geo-Logfile synchronisieren, also das Tool sucht sich über den Filestamp des Bildes automatisch den richtigen Geotag aus dem Geo-log aus (nach einem bestimmten sogar beeinflussbaren Algorithmus) und speichert diesen im EXIF-File.
Zurück zur SX230: Ich würde also, wenn keine Koordinaten zum Zeitpunkt des Bildes vorhanden sind, nicht irgendeinen Tag ins Bild patchen (weder zum Aufnahmezeitpunkt, noch später), sondern würde das third-party-tools überlassen. Ich würde also, wenn zum Zeitpunkt des Bilderstellens kein GPS vorliegt mir einen Merker setzen, dass ein Geotag geschrieben werden muss in eine Datei, sobald Empfang da ist. Wenn mehrere Bilder ohne GPS-Signal-Empfang hintereinander gemacht werden, so wird der Merker trotzdem nur einmal gesetzt und genau ein Tag geschrieben, sobald Signal da ist. Das müsste Geosetter ausreichen.
Probleme: Wenn die Kamera ausgeschaltet wird, ist natürlich auch nichts mehr mit Geotag schreiben, da dann chdk nicht mehr läuft. Deswegen wäre mein Vorschlag, dass man die Kamera einfach anlässt und chdk einen Timeout aufzieht, wie lange die Kamera versuchen soll, einen Geotag zu bekommen (der Abschalt-Timeout von der Kamera muss dabei überschrieben werden). Der Timeout wird gelöscht, wenn
a) er abläuft -> dann wird die Kamera auch von chdk ausgeschaltet
b) ein GPS-Signal vorliegt (Tag schreiben und Kamera ausschalten)
c) der Auslöser halb gedrückt wird (User-Abbruch)
Den Timeout kann man ja auch anzeigen lassen auf dem Display. Idealerweise schaltet man die Kamera nach einer Aufnahme, wo kein Geotag vorlag in den Wiedergabemodus (Objektiv fährt ein) und kann sie wegstecken. Um den Rest kümmert sich chdk und man kann hinterher seine Bilder mit Geosetter synchronisieren
Alle 3 Anwendungsfälle würde ich in getrennte Dateien schreiben.
Anwendungsfall 1 würde jede 1-60 Sekunden einen Geo-Tag in eine Datei schreiben
Anwendungsfall 2 bei jedem Bild oder verzögert bei jedem Bild, wobei Geotags mit gleicher Position (einstellbarer Radius) unterdrückt werden könnten
Anwendungsfall 3 wäre eine Datei, die ähnlich wie Anwendungsfall 2 bei jedem Bild oder verzögert bei jedem Bild eine Koordinate enthält, allerdings würde ich hier keine Tags unterdrücken, da die Synchronisation von Geosetter nach Timestamps funktioniert.
Bitte lass mich wissen, wenn ich was nicht richtig erklärt habe, oder wenn du andere Ideen hast.