ここ数年、GPSユニットとデジタルカメラを持って出かけた後は、カシミール3DでGPSユニットからトラックデータをダウンロードし、ついでデジカメプラグインで写真データに位置情報埋め込む、という作業が定着している。
よって最近撮影した写真データのほとんどに位置情報が埋め込まれている。
これらExifデータををGoogle Mapsで公開する方法を模索してみた。
で、考えたのがこの流れ。
1. 位置情報が埋め込まれた画像データから、座標、写真のタイトル、コメント等を取り出し、GPXファイルに変換する。
2. Google Maps APIで、GPXを読み込み、マーカーを表示するGoogle Mapsコンテンツを作成
3. 1.で作ったGPXデータ、2.のGoogle Mapsコンテンツ、画像データをサイトにアップ。
2.と3.は既にここで試行済みなので問題はない。
問題は1。ExifデータからGPXを生成するにはどうすればいいか?
とりあえずExifの仕様はネットで入手できたので、あとは実装のみ。
GPXはUTF-8エンコーディングで生成したいので、このあたりのコーディングが楽なほうがいい。
そこで思いついたのがC#。
うまい具合に@ITでこんな記事を発見。
「.Net TIPS デジカメ画像のExif情報を取得するには?」
Visual C# 2005 Express Editionで早速挑戦。
丸1日格闘してできたのがこれ。
Exif2Gpx.exeにExifデータが入ったフォルダをドロップすると、そのフォルダと同階層に、<フォルダ名>.gpxというGPXファイルを生成するプログラム。
例) フォルダ名が"pics"だと、GPXファイルは"pics.gpx"になります。
そして、画像フォルダとxmlファイルを、HTML & Javascriptコンテンツと一緒にサイトにアップするとこうなります。
2006年02月10日 08:25 | トラックバック