デジカメで撮ったJPEGデータに位置情報を付加するツール
…を作ってみましたよ。という宣伝。
先日旅行に行ったのですが、デジカメで撮った画像に位置情報が付加されておらず、Amazon Photosへアップロードした際に不完全なアルバムとなってしまう状態になっていました。
元々気になっていた問題ではあったのですが、先日Googleが発表したAntigravityが興味深かったので流行りのバイブコーディングで実装。(今まで人力で実装する気力が湧かなかったとも言う)
■ 概要
Androidスマホを持ち歩いていると自動的に記録される位置情報をJSONで取得、それを読み込ませて「撮影時点でいた場所」を特定、GPS情報として写真に付加する、という流れで処理するよう作っています。
■ 実現したいこと
スマホを持ち歩きつつデジカメで撮影
帰宅後に写真をPCに移動し、今回作るツールで位置情報を付加
NASとAmazon Photosにぶん投げ
■ 位置情報データの取得
-> Androidの場合
[設定] -> [位置情報] -> [位置情報サービス] -> [タイムライン] から取得が可能。Googleドライブ等に保存し、PCから参照してください。
-> iOSの場合
Googleマップアプリを開く
プロフィールアイコン → 「タイムライン」 → 「設定」
「バックアップを有効にする」をオンにする
だそうです。Copilotからの回答なので実際には未確認。
■ アプリの使い方
-> アプリ起動
「main.pyを実行してください」でもいいのですが、あまりに不親切なので実行ファイルに固めたものをリリースしてみました。
こちらのページから「Log2Exif.exe」をダウンロードして実行してください。
-> 起動したら
起動すると以下のような画面が出てくるので「タイムラインのJSON」「写真が格納されたフォルダ」「位置情報を追加した写真を格納したいフォルダ」を指定して「Start Processing」を押します。

「Overwrite existing GPS data」をチェックすると元々位置情報が記録されている画像にもJSONを元に位置情報を上書き記録する、はず。

上記の写真のプロパティを参照すると以下のようにGPS情報が含まれていないのですが

本アプリで処理したあとは「撮影日時付近での自身のスマホの位置情報」がGPS情報として設定されます。

設定された座標で検索したのがこちら。地獄谷なのであってるっぽい。
■ Antigravityとは
今回使った開発ツール、VSCodeをベースにGoogleが作った「バイブコーディング推奨エディタ」
単独で記事が書けるやつなので、今回は軽めに触れるだけ。
どれくらい凄いかというと、DESIGN.mdを読み込ませて出力しただけで9割くらい完成。あとは実際確認しながら意図しない形で実装されたロジックや、設計に書き忘れた仕様などを指摘しながら修正していく感じ。
キチンと設計できているほど完成度の高いものが出てくるので、バイブコーディングはプログラム云々の能力よりも設計力が問われる気がしますね。
ただし、プレビュー版なこともあってか、デフォルトで設定されるAIモデル「Gemini 3 Pro」はゴリゴリ開発してるとすぐに制限に達してしまいます。
また、日本語で扱うなら考える過程も日本語出力される「Claude Sonnet 4.5」の方が使い勝手いいかも…
