携帯W43SのGPS情報でGoogle Mapする

念願のGPS携帯をゲットしたので、GPS情報を画像に貼り付けてそれを利用してみます。

まず画像情報にGPS情報が含まれていることをflickrで確認

gpsinfo.jpg

ところでWGS-84って何?ってことで世界測位系と日本測位系があることを知りました。

世界測地系移行の概要
測地系 - Wikipedia

とりあえずこのW43Sは世界測位系であるWGS-84を利用してますので、Google Mapなどにはそのまま利用可能です。

さて次にEXIF情報からGPS情報を取得方法です。取得にはコマンドラインツール exiftoolが便利です。

ExifTool by Phil Harvey
1日1tech Image-ExifTool:Perl で Exif 情報を取得

しかしここで得られる結果は
35 deg 40' 21.90" N, 139 deg 43' 27.37" E
というフォーマットです。一方Google Mapの方に入力する際は、

35.672031, 139.732089
35°40'19.31" 139°43'55.52"

といったフォーマットにする必要があります。ということでperlのスクリプトを書いてみました。

#!/usr/bin/perl -w
use Image::ExifTool 'ImageInfo';
my $file = shift or die "Please specify filename";
my $info = ImageInfo($file);

$GPSPosition = $info->{GPSPosition};
if( defined $GPSPosition ){
    $GPSPosition =~ s/^(\d*) deg (\d*\') ([0-9\.]*)\" N, (\d*) deg (\d*\') ([0-9\.]*)\" E\
$/\+$1%C2%B0$2$3%22%20\+$4%C2%B0$5$6%22%20/;

    print "<a href=\"http://maps.google.co.jp/maps?q=", $GPSPosition, "\">Google Map</a>\\
n";
}

このスクリプトを利用して画像からGoogle Mapへのリンクを自動生成したのが以下。

20061114/s/sn370006.jpgGoogle Map

20061114/s/sn370007.jpgGoogle Map

京王線新宿の位置がズレズレなのは、地下のため十分な数のGPSが補足できなかったため。それでもほぼ新宿を指し示すのに逆に驚きました。

次回があれば、Google Mapを貼り付けてみたいと思います。

他参考URL:
YappoLogs: Geo::Coordinates::Converter - 緯度経度を簡単に変換する

マッシュアップ日記(2)Google Mapsを貼ってみる|blog|たたみラボ