LUNARAVE WEBクリエイターの仕事と休息

アクセスカウンタ

Google Maps APIの利用戦国IXAWeb技術Youtubeチャンネル

zoom RSS Google mapとGPSの連携(2) -取得した座標を地図用に変換-

<<   作成日時 : 2010/06/16 21:36   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 1 / トラックバック 0 / コメント 0

前回記事に取り上げてから随分と時間が過ぎてしまったが、携帯電話の搭載機能であるGPSを利用して"Google map"にマーカー表示させるサンプルを紹介したのでもう少し詳細仕様となる、GPSで取得した座標を地図に渡すための数値変換を紹介する。

手元の端末は"DoCoMo"を通信キャリアとしているため、GPSの仕様は"DoCoMo"のものに準拠する。
->DoCoMo GPS仕様
->Google mapとGPSの連携(1) -現在位置を地図表示-


仕様を見ると、即位結果は「世界測地系」のフォーマットは「dms(±dd.mm.ss.sss)」で記述されるとある。
そして緯度の変数名は「lat」、経度の変数名は「lon」と決められている。

例えばPHPの場合、下記のようなソースで緯度経度を扱うことができる。


if(!empty($_GET['lat']) && !empty($_GET['lon'])){
$lat = $_GET['lat'];
$lon = $_GET['lon'];
}



取得した緯度経度を表示すると、「+34.40.88.556」「+135.10.58.102」が表示される。

ちなみにこの座標は神戸市内でGPSを起動した場合の値で、PHPなどを利用したWebアプリケーションでなくても、機種によってはこのような座標だけを取得して端末内に保存できる携帯電話もある。

ここで取得した「+34.40.88.556」「+135.10.58.102」を"Google map"など地図APIに渡して地図の位置を確定させるのだが、この数値のままだと利用できないので変換しなければならない。


まずフォーマットの形として、「dd.mm.ss.sss」で形成されている。

ddは10進法で度で示し、mmは60進法で分を、ssは60進法で秒を示している。
sssはssの小数点以下の数値だ。

これを"Google map"が扱うことができる「***.********」という10進数の形に変換するためには60進数の部分を10進数に直し、それらを合計することで算出できる。

尚、mmは分に対してssは秒なので、mmとssには通常の時刻の考え方と同じく60倍の単位の相違があることに注意が必要。

これらを元に算出する計算式のソースは以下となる。


$lat = preg_split("/\+/" , $lat); //値の+取る
$lon = preg_split("/\+/" , $lon); //値の+取る

// 緯度をピリオドごとに切り分け配列に入れる
$lat = preg_split("/\./" , $lat);
// 経度をピリオドごとに切り分け配列に入れる
$lon = preg_split("/\./" , $lon);

$lat = $lat[0] + ( ($lat[1]/60) + (( $lat[2] + ($lat[3]/1000)) / 3600 ) );
$lon = $lat[0] + ( ($lon[1]/60) + (( $lon[2] + ($lon[3]/1000)) / 3600 ) );



このソースで変換された値は「34.69126555556」「135.18280611111」となり、"Google map"に渡すと下図のようにプロットされる。

 GPSと地図との連携


今回は"DoCoMo"の携帯端末で"Google map"と連携した例だが、これが他のキャリアで位置情報を取得して他の地図APIを利用する場合は仕様がことなることもある。

携帯電話で"Google map"を表示させるにはパソコンのブラウザと同じ表示方法では利用できず、画像化された地図を用いることになるのだがこの点は別の記事で紹介したいと思う。


テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 1
なるほど(納得、参考になった、ヘー)

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Google mapとGPSの連携(2) -取得した座標を地図用に変換- LUNARAVE WEBクリエイターの仕事と休息/BIGLOBEウェブリブログ
文字サイズ:       閉じる