LocationLinkプラグイン for MovableType
概要)
エントリー中に含まれる img srcタグで指定されたJPEGファイルのEXIF情報から位置情報を取り出し、
1: Google Mapとトラックバック地図へのリンクを作成
2: トラックバック地図へping送信(トラックバック)
を行うMTのプラグイン。
対応するトラックバック地図:
・はてなマップ
・ブログ人マップ
・ライブドアマップ
・アルプスラボbase
概要)
エントリー中に含まれる img srcタグで指定されたJPEGファイルのEXIF情報から位置情報を取り出し、
1: Google Mapとトラックバック地図へのリンクを作成
2: トラックバック地図へping送信(トラックバック)
を行うMTのプラグイン。
対応するトラックバック地図:
・はてなマップ
・ブログ人マップ
・ライブドアマップ
・アルプスラボbase
・「エントリー中に含まれる img srcタグで指定されたJPEGファイルのEXIF情報から位置情報を取り出し」、Google Map APIを使って、小さな地図をエントリの中で表示。そのなかのポイントをクリックすると写真のサムネイルが表示される機能をメインとして、そのオプションとして外部へのトラックバックがあるほうがいい・よのなかコンテンツ重要なんで、外とのリンクより、中のエントリの充実のほうが喜ばれる
(抜粋)
というフィードバックがあったのでそれにお答えする形でエントリー。
世の中にはすでにプラグインやAPI利用で地図を埋め込むものがあるのでそちらを利用することで出来るのではないかと思います。
locations.plプラグインとその応用がほぼ回答になるのかと。
jm@foo: Movable Type用 位置プラグインGoogle Maps APIのこれを参考に、(中略)というhtmlを作ると、地図上に最近100件のエントリーの位置がマップされる。
ただしこのプラグインは「同じサーバに置かれている画像ファイルのみ」対象となっています。
フィードバックにある「中のエントリの充実」が主眼であればこちらが有用かと思います。
一方私がプラグインを作った動機は以下にあります。
まあですから極端な話、地図へのリンク表示はpingが正常に飛んでいるかどうかの確認用みたいなもので、pingがトラックバック地図4箇所に飛んでいればOKだったりします。
それにしてもALPSLABさんのサービスは凄いですね。さすがは地図の専門家だと思います。
位置情報はまあ簡単にいうと緯度経度から現在位置を特定する手法ですね。3次元測位なので本当は高度が必要なのですが多くの場合地表にいるという前提があるのでEXIF情報に高度情報はないです。
さて地図には「測地系」と呼ばれる用語があります。緯度経度で表現する基準となるものです。
[の] のまのしわざ: 携帯W43SのGPS情報でGoogle Mapする
要約すると「世界測地系(wgs84)」と「日本測地系(Tokyo)」の2種類があるといっていいでしょう。Google Mapsは当然「世界測地系」で、日本国内の地図業者は過去の経緯から「日本測地系」を使っています。
緯度経度の表現方法は測地系が異なっていても同じです。
[度°分' 秒" (Degrees Minutes Seconds: DMS) ] 度はdegree(360度)、分は60分、秒は60秒で繰り上がる。秒は小数点で表現
例)35°40'19.31" 139°43'55.52"
または
[度(10進表記) (decimal degree:DD)] 度以下を小数点で表現 例)35.672031, 139.732089
この変換は以下の式で可能です。
[の] のまのしわざ: 携帯W43SのGPS情報でGoogle Mapする(2)
[10進表記の小数点以下] = [分] / 60 + [秒] / 3600
オンライン地図の「測地系」と「緯度経度の表記」についてまとめてみます。
位置サンプル) [の] I LOVE 位置情報 (テストブログ): ドトール
サービス名 | 表記 | リンクURL | 測地系 |
---|---|---|---|
Google Maps | 度(10進表記) | http://maps.google.co.jp/maps? q=35.6763805555556,139.733980555556&z=16 | wgs84 |
ブログ人マップ | 度(10進表記) | http://blog.ocn.ne.jp/blogzinemap/? x=139.73399162&y=35.67639952&z=14&t=s | wgs84 |
はてなマップ | 度(10進表記) | http://map.hatena.ne.jp/? x=139.733980555556&y=35.6763805555556&z=1&type=map | wgs84 |
ライブドア | 度分秒 | http://map.livedoor.com/map/? ZM=10&MAP=E139.44.13.911N35.40.23.315 | Tokyo |
アルプスbase | 度分秒 | http://base.alpslab.jp/? s=25000;p=35/40/23.315,139/44/13.911 | Tokyo |
世界測地系のGoogle Mapsを利用しているところは度(10進表記)なので特に問題はないですが、日本測地系のライブドア、アルプスは度分秒を利用している上区切り文字がドットかスラッシュと違います。ドットの方は秒のドットと意味合いが異なるのでちょっと混乱しやすいですね。
トラックバック地図のトラックバックURLについてまとめます。
位置サンプル) [の] I LOVE 位置情報 (テストブログ): ドトール
サービス名 | 表記 | リンクURL | 測地系 |
---|---|---|---|
ブログ人マップ | 度(10進表記) | http://blog.ocn.ne.jp/blogzinemap/? x=139.73399162&y=35.67639952 | wgs84 |
はてなマップ | 度(10進表記) | http://map.hatena.ne.jp/? x=139.733980555556&y=35.6763805555556 | wgs84 |
ライブドア | 度分秒 | http://map.livedoor.com/map/tb/ E139.44.13.9N35.40.23.3 | Tokyo |
アルプスbase | msec | http://base.alpslab.jp/bin/tb/ 128423315/503053910 | Tokyo |
ブログ人マップ、はてなマップはリンクURLとトラックバックURLが同じです。表示用オプションが異なりますが、GETとPOSTメソッドで動作を変えているようですね。手軽で嬉しいです。
ALPSLAB baseは今度はmsec表記となりますので注意が必要です。度分秒からmsecへの計算方法は以下で可能です。
msec = (度+分/60+秒/60) * 3600 * 1000
ライブドア表記からのサブルーチンは以下です。
sub to_msec{
my $ret = 0;
my $val = shift;
$val =~ /^(\d*)\.(\d*)\.(\d*\.\d*)$/;
$ret = ($1 + $2/60.0 + $3/3600.0) * 3600000.0;$ret;
}
デジカメで撮影した画像ファイルにEXIF情報が埋め込まれていることは周知のことかと思います。
EXIF情報とは
Exchangeable image file format - WikipediaExif(エグジフ、Exchangeable image file format)は、富士フイルムが開発し、JEIDA(日本電子工業振興協会)で規格された画像メタデータのフォーマット。デジタルカメラの画像用に使われる。
ということで、メタデータとして画像自体以外のデータを含めることが可能です。撮影情報のひとつとして位置情報を含めることが出来ます。
もっとも簡単なのはGPS携帯で撮影後、GPSで位置を特定し画像に保存する方法でしょう。FlickrではEXIF情報はこのように見えます。
EXIF情報の表示に対応するアプリケーション、例えばirfanview+pluginではこのように表示できます。
[位置情報つき画像]
さて位置情報を画像でもつ必要性はどれくらいあるのでしょうか?位置は撮影時刻と同じくらい有用かつ重要な情報であると考えます。時間軸をtと考えた場合、位置情報によりx, y軸の情報を得ることができ、3次元として画像データをプロットすることが可能です。単体に意味がなくとも、データが集積されたときに初めて価値を生み出す可能性があります。
今はGPS携帯で画像データに位置情報を埋め込むのは手動で行う必要があって面倒な作業ではあります。
別売りのユニットとしてはこのようなものがあります。専用アプリで後から時間を元に情報を埋め込むことができるという仕組みです。しかしやっぱり面倒でしょうし、もって歩くこと自体が煩わしいです。
Sony Cyber-shot | GPS-CS1K[GPSユニットキット]
これはデジカメメーカーに是非GPSチップを採用してもらい、自動で埋め込んで欲しいものです。一眼レフなら大きさ的にも価格的にも可能だと思うのですがいかがでしょうか。
[位置情報付画像の地図へのリンク]
auの携帯、ソニーエリクソンW43S利用を例にしてお話します。もしかしたら他の携帯では動作が異なるかもしれませんが、おそらく違わないかと。
[の] のまのしわざ: トラックバック地図に自動pingするLocationLinkプラグイン
GPSから直接得られた情報を付加した場合の測地系は世界測地系(wgs84)となります。
しかし地図を開いて位置を手動で修正した場合は測地系が日本測地系(Tokyo)になります。
これは修正に利用する地図の測地系がTokyoになっているためだと思われますが、ちょっとトリッキーなポイントですね。ezweb地図へのリンクはきちんと引数 datum=0/1で判別されているので表示は問題ないです。
http://walk.eznavi.jp/map/?datum=0&unit=0&lat=%2b35.37.21.07&lon=%2b139.43.07.14&fm=0
http://walk.eznavi.jp/map/?datum=1&unit=0&lat=%2b35.40.23.62&lon=%2b139.44.10.05&fm=0
建物の中や街中などではほとんど衛星がとれません。そのため随分と誤差が出てしまうのですがこれを修正するのが時間的に出来ないことがあります。それでもだいたいの位置が分かっているのでないよりもあったほうがいいです。
そうなると携帯以外で修正する手段が欲しいのですが、それについてはまた機会があれば。
世の中にはすでに便利なMT用プラグインがあるので、その紹介をしていきます。
ALPSLABが提供している ALPSLAB clip! (mt-alps.pl)はエントリー中に住所を [map:住所] という形で記述すると、その場所に地図をインライン表示することができます。
例)
[map:東京都千代田区千代田1-1]
[map:東京都千代田区千代田1-1]
住所以外にも緯度経度を指定することも可能です。
これを使うと予め住所や緯度経度が分かっている場所の地図を表示するのが非常に簡単、お手軽です。例えばレストランやショップなど、住所が分かっている場所を示すのに便利でしょう。
またトラックバック地図であるALPSLAB baseにトラックバック送信を送ることが可能です。これを行うとALPSLAB base上にエントリーがマップされ、クリックするとエントリーへジャンプします。
使い方、インストール方法については下記を参照して下さい。Six Apartのページが懇切丁寧です。
Six Apart - Movable Type プラグインディレクトリ
ALPSLAB clip!
前回に引き続きALPSLABさんの便利ツールの紹介です。
ALPSLAB myBaseとはサイドバーに地図を表示するブログパーツ(ウィジェット)で、エントリーからトラックバックを送っておくと地図上にエントリーがマップされているという優れものです。逆にいうとトラックバックを打たないと意味がないので、先に紹介したALPSLAB Clip!などを使って送るようにしましょう。もちろん LocationLinkプラグインでもトラックバックを送ることができます。
貼り付けた例:テストブログ
このブログの右上に地図があり、バルーンをクリックすると該当するエントリーにジャンプします。
ALPSLAB myBaseALPSLAB myBaseに [「!」アイコン] として表示されるエントリー(ブログ記事)は、ALPSLAB baseにトラックバックされたエントリーだけです。すべてのエントリーが自動的にALPSLAB myBaseで表示されるわけではありません。
詳しい説明は以下を参照してください。
ALPSLAB myBase
TypePadをご利用の方は簡単にウィジェットが登録できるようになっていますね。しかし簡単にトラックバックを打てないことにはなかなか活用しにくいような気がします。
Yahoo!地図Webサービスが新しく公開されたようですが、GoogleMapsAPIとの比較も兼ねてツインスクロール地図を作ったとのこと。
Yahoo!地図情報WebサービスとGoogleMapsAPIを比べてみる|blog|たたみラボ昨日公開された、Yahoo!地図情報Webサービスですが、まずは、Googleと地図がどのくらい違うのかを見ることができるサンプルを作りました。
単純に面白いですねぇ。エヴァンゲリオンのエピソードを思い出しました。
それ自体はありがちな機能なんですけど、WiFiを利用して位置を特定する点や、コミュニケーションを主眼においているようなところが特徴のようです。
MIT、位置情報プログラムのベータ版をリリース--学内にいる友人を確認可能 - CNET JapaniFINDと呼ばれるこのソフトウェアは、一見したところよくあるインスタントメッセージング(IM)プログラムのように見える。しかし、このiFINDの友達リストは、友達がMITキャンパス内のどこにいるかをリアルタイムで地図に表示する機能を備えている。この地図には、Wi-Fiを介してMITのネットワークにログオンしている人の位置がプロット表示され、さらにユーザーは友達ごとに異なる小さなアバターを作成できる。MITの目の前に流れるチャールズ川の土手で誰がくつろいでいるのか、また、図書館の自分の1階上には誰がいるのかが一目で分かる。
WiFiを使って位置を特定するプロジェクトはソニーCSLでもあります。
WiFiのいいところはネットワーク接続がされているのでonlineであり続けられる点です。一方で消費電力の問題でガジェットへの組み込みが厳しいところでしょうか。GPS+携帯(通信)とどちらが先に普及するか気になります。
今日紹介するのは啓発されたlocations.plプラグインです。このプラグインは、
jm@foo: Movable Type用 位置プラグイン対応する位置情報: ・エントリー本文にimgタグとして記述され、同じサーバに置かれている画像のExif GPSタグ ・エントリー本文に含まれる地図サービスのURL ( walk.eznavi.jp / www.gpspowered.jp / mapfan.com / www.mapion.co.jp )
というように、エントリー中にある画像のExif情報またはオンライン地図へのリンクURLから位置情報を取り出してタグ MTLocationにするというものです。
例えばすでにモブログで位置情報を付加してエントリー作成した場合などはこのプラグインを利用するとGoogle Mapsへのリンクを自動作成して付加することが可能です。
ただ制限として
予約していたPSP用GPSレシーバー一体型アプリケーション MAPLUSがクリスマスプレゼントのようにやってきました。
早速起動してみたものの・・・
予想どおりなのですが、Tokyoです。
MAPLUSでは「あしあと記録」が可能です。あしあととはログ出力ということで、位置情報をメモリースティックにファイルとして書き出します。
ファイルは以下のようなフォルダ構成で出力されます。
PSP->SAVEDATA->ULJS00091GPSLOGYYMMDDhhmmss
YYMMDDhhmmssは年月日時分秒を表します。
このフォルダの下にあるGPSLOG.DATがログファイルです。
ログ出力は1秒毎、フォーマットはNMEA-0183フォーマットに準拠しているようです。さらに測地系の表記のためGARMIN社の独自記述である$PGRMMをサポートしているようです。
以下、ファイルの中身の例。
PSP用MAPLUSを電車と徒歩で使ってみました。
まずは普段利用している京王線。条件は平日の昼、1時、車内は空いていてドア際の席(北側)に座って膝の上にPSPを置き測位。
このようにきちんと衛星がとれました。これで分かったのはどうやら水平線方向が開いている、窓やドアが近いと電波を受信しやすいということです。上の写真では谷間になっている仙川から地下にもぐる笹塚過ぎまでほとんど位置を把握できていました。
MAPLUSのあしあとデータが一般的なNMEAフォーマットだったということは前回分かりましたが、これを利用してGoogle EarthのKMLフォーマットに変換すれば Google Earthで見ることが可能です。
手順を簡単にまとめると以下となります。
[tnoma@kodomono gps]$ ls
ULJS00091GPSLOG061228153110 ULJS00091GPSLOG061228160049 ULJS00091GPSLOG061228163147
ULJS00091GPSLOG061228153443 ULJS00091GPSLOG061228161303
ULJS00091GPSLOG061228154759 ULJS00091GPSLOG061228162551
[tnoma@kodomono gps]$ cat */GPSLOG.DAT >> ./gpslogall.dat
C:\win_data2006\gps\GPSLogCv039>gpslogcv.exe -INME -TNME -DW -oR \\Kodomono\public\gps\gpslogall.dat
gpslogcv - GPS Log File converter V0.39 07-Jul-2005
Program by imaizumi@nisiq.net
MapServerScript by masaaki@attglobal.net
gpslogall.dat(NMEA)->gpslogall.nme(NMEA)
3386 record(s) Complete.
---
GPSBabel: convert, upload, download data from GPS and Map programs
変換はWindowsのGUIツールを使うと非常に簡単に出来ます。
まずはzip形式のもの(gpsbabel-1.3.2.zip)をダウンロードして、適当なフォルダに展開します。
GPSBabelGUI.exeを起動して、以下のようにフォーマットとファイルを指定します。
入力フォーマット NMEA 0183 sentences
出力フォーマット Google Earth (keyhole) Markup Language
この例では all.kmlというファイルに出力されました。
このファイルをダブルクリックすると自動的にGoogle Earthが起動してログをビジュアルに見ることが出来ます。