FOMA 903i から MT4i で投稿すると、ALPSLAB clip! で自動的に地図を挿入

※以下のコードにはバグがあります。測地系が”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 わからんねん)

【実行サンプル】
明日のデート(デート?デートなのか!?)で、出先からいろいろ投稿してみる。
移動先をトラックして楽しんでください。

そんなわけで、みなさん FOMA 903i を買いましょう。
#すんません、当方DoCoMoの回し者です。