携帯電話の簡易位置情報の利用

半年以上前ですが、携帯の位置情報をつかって、現在地周辺で登録されたスポットを返すというプログラムを作りました。
とりあえず覚えているうちにメモです。

位置情報を受け取って処理するURLが http://mspec.jp/sample/gps/locate.php だとした場合、位置情報を取得するためのHTMLタグは各社以下の通りです。

<!-- Docomo -->
<a href="http://mspec.jp/sample/gps/locate.php">Docomo位置情報取得</a>

<!-- au -->
<a href="device:gpsone?url=http://mspec.jp/sample/gps/locate.php&amp;ver=1&amp;datum=0&amp;unit=1&amp;acry=0&amp;number=0">au位置情報取得</a>

<!-- Softbank -->
<a href="location:auto?url=http://mspec.jp/sample/gps/locate.php">Softbank位置情報取得</a>

<!-- Willcom -->
<a href="http://location.request/dummy.cgi?my=http://mspec.jp/sample/gps/locate.php&amp;pos=$location">Willcom位置情報取得</a>

これで、位置情報が帰ってきます。
ユーザーエージェント判定とか事前にして出しわけする必要がありますけど。

位置情報はGETの引数で返ってきます。

それぞれ

Docomo
データ 引数名 内容備考
緯度 lat フォーマット(±dd.mm.ss.sss)
経度 lon フォーマット(±dd.mm.ss.sss)
測地系 geo 世界測地系でほぼ固定みたいです。気にしません。
測位レベル x-acc 座標の誤差レベルです。この値によって以下のように誤差が出るようです。

3→水平誤差50m未満

2→水平誤差50m以上300未満

1→水平誤差300m以上

Docomoは超シンプル。非常にハンドリングがしやすかったです。

つづいてau。

au
データ 引数 内容備考
測地系 datum 測地系を表す値です。どうやら二種類帰ってくるようです。

0→WGS-84測地系

1→東京(日本)測地系

表記方法 unit 緯度経度の表記方法です。うやら二種類帰ってくるようです。

0→dms(ddd.mm.ss.sss:度分秒単位)

1→degree(dd.dddd:度単位)

緯度 lat unitの値によって表記法が変わります。
経度 lon unitの値によって表記法が変わります。

auがはもっといっぱい返ってきます。誤差も3種類くらいのパラメータで返ってきます。

イマイチよくわからないので、放っておきました。

さらにSoftbank。

Softbank
データ 引数名 内容備考
緯度経度 pos 緯度経度一緒に返ってきます。

Ndd.mm.ssEddd.mm.ss.sss

といった形で度分秒表記の頭にそれぞれ

東経→E 西経→W 北緯→N 南緯→S

がついた形で返ってきます。

測地系 geo それぞれ、以下の値で帰ってきます。
wgs84→世界測地系

tokyo→日本測地系

itrf →ITRF 系

測位レベル x-arc Docomoと一緒です。

3→水平誤差50m未満

2→水平誤差50m以上300未満

1→水平誤差300m以上

緯度経度が一緒についてくるので、少し厄介。

最後にWillcom。

Willcom
データ 引数名 内容備考
緯度経度 pos 緯度経度一緒に返ってきます。

Ndd.mm.ssEddd.mm.ss.sss

といった形で度分秒表記の頭にそれぞれ

東経→E 西経→W 北緯→N 南緯→S

がついた形で返ってきます。

むちゃくちゃシンプル。

位置情報しか返ってきません。

とまあ、以外にあっさりと位置情報がとれてしまいます。

あとは、プログラム側で測地系の変換やら、表記法の変換やらをかけます。

これがまた大変だったりするんですが、そのあたりはまた機会があれば書きます。

携帯電話の簡易位置情報の利用” への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA