※以下のコードにはバグがあります。測地系が”WGS84″から”Tokyo”に変換されていないので、ALPS CLIP!では位置がズレて表示されます。
【用意するもの】
1. FOMA 903i シリーズの携帯電話 (GPSがついている)
2. ALPSLAB CLIP!
3. MT4iを当方が改造したコード (当然、ちゃんと動く MovableTypeも)
【インストール方法(超適当)】
当方が改造したMT4i(mt4i.gps)を、あなたのサイトの mt4i.cgi に上書き。
#1行目のperl呼び出すところ、ちょっと細工してしまったから、適宜直して。
【使い方】
MT4iで通常通りエントリーを書いて、投稿する。
すると、「位置情報を送るか?」みたいなことが聞かれるので、送ってやればよろしい。
【改造したところ】
・元にしたもの: MT4i 2.13
・200行目あたりにGPSデータ用変数追加
—-
# GPS測位情報 FOMA P903i でしかチェックしてない。903iシリーズならきっと動く
my $entry_lat = $q->param(“lat”); # 現在地 緯度
my $entry_lon = $q->param(“lon”); # 現在地 経度
my $entry_acc = $q->param(“x-acc”); # 現在地 測位レベル
my $entry_geo = $q->param(“geo”); # 現在地 測位系
—-
・2180 行目あたりで投稿ボタンの中身を変更 (“lcs” って書いた)
—-
$data .= “<form method=\”post\” action=\”$href\” lcs>”;
—-
・2330行目あたりに、GPS情報の整形とALPS CLIP!を埋め込む処理を書いた
—-
########################################################
# エントリーの「追記」の末尾に、ALPS CLIP!で現在地を挿入
$entry_lat =~ s/(\d*)\.(\d*)\.(\d*).(\d*)/$1\/$2\/$3.$4/;
$entry_lon =~ s/(\d*)\.(\d*)\.(\d*).(\d*)/$1\/$2\/$3.$4/;
$entry_lat =~ s/\+|\-//;
$entry_lon =~ s/\+|\-//;
if ($entry_acc == “3”){
$entry_acc = “誤差50m未満”;
}elsif ($entry_acc == “2”){
$entry_acc = “誤差50m以上、300m未満”;
}elsif ($entry_acc == “1”){
$entry_acc = “誤差300以上”;
}else{
$entry_acc = “誤差不明”;
}
$entry_text_more .= encode(“shiftjis”,decode(“euc-jp”,”<p>【この記事が投稿された場所】<br />[map:$entry_lat,$entry_lon]<br />$entry_acc</p>”));
########################################################
—-
【参考にしところ】
・作ろうiモードコンテンツ: GPS (GPSまわりのこと)
・とほほのperl入門 (俺、perl わからんねん)
【実行サンプル】
明日のデート(デート?デートなのか!?)で、出先からいろいろ投稿してみる。
移動先をトラックして楽しんでください。