iPhone アプリに カメラ機能を追加して、GPS情報をexif情報に追加する。。。事がようやく出来た。
前回まではiPhoneのカメラロールに保存したjpgファイルのexif情報にGPS情報をパッチ的に埋め込む方法が問題だった。
それが終わったので最後に保存したjpgファイルを検索してGPS情報を埋め込めばよい。。。と、カメラフォルダーを検索したら、最後に保存したはずのファイルが見つからない。どうしても一つ前のデータが最後のファイルとして戻ってくる。
どたばたした結果、分かったのは
<問題点>
1) 「UIImageWrtieToSavePhotosAlbum」の結果、すぐにはjpgファイルとして保存されない。
2)その結果、直後にファイルを検索しても見当たらず、一番最後のファイルは一つ前のファイルになってしまう。
。。のが原因だった。 「カメラロールに保存するのが、ファイルに書くのより早い」と、以前書いていたが、非同期処理にしていたのね。。。実際には、4~5秒後に、実際にファイルになるようだ。
<解決方法>
1)「UIImageWrtieToSavePhotosAlbum」の引数には、ファイルの書き込みが終了した時に呼び出される関数を設定できた。その関数内で、ファイル検索を行い、最後のファイルにGPS情報を書き込めば良い。
。。と、ようやく一連の動作が完成した。これでGPSでログを取りながら、カメラで撮影したデータにGPS情報も埋め込んで保存することが出来るので、Run Logger/Run Diary のNEXT機能作成に入れそう。
<NEXT開発案>
1)保留中の加速度計測をまとめて、加速度ロガー? サーキットロガー? みたいなガジェットにする。
2)折角、GPS情報つきのカメラ撮影が出来るようになったので、MAPと連携する。
3)日本だったら3D表示なら「カシミール」でしょうから、「カシミール」で使用できるようなデータ形式でUPLOADする。
4)MAPにルート検索を組み込む??
5)ログルートを「お気に入り」として別保存する。
6)ログリスト表示を月別に分類する
7)ログリストをカレンダー形式にする
8)電子コンパス対応
9)サーキットログとして、ラップタイム、ラップグラフ、区間タイムグラフ表示
。。。。。
と、色々やりたいが。。。一歩一歩ですね。
(PS)
結構、GoogleAPIを使うことになりそうなので、本当はAndroid携帯で作成するべきかとも思うこの頃です。審査も無いようだし、APIも自由に使えそうだし。
※コメント投稿者のブログIDはブログ作成者のみに通知されます