携帯の位置情報を取得するときのメモ
最近の携帯にはほとんどGPSや簡易位置情報がついていますね。
これらの情報を利用してのサイトやWebアプリなどもかなり出てきました。
しかし、キャリアによって位置情報の取得方法が若干異なっているのでまとめてみました
au
auにおいての位置情報取得方法は
- 簡易位置情報(GPS非対応機)
- GPS
の2種類があります。
簡易位置情報
そんなに精度は高くないですが、ほぼ全てのau端末で利用可です。
取得できるパラメータは以下の通り。
引数名 | 内容 |
---|---|
datum | 測地系 以下の2つの測地系の中から使用している測地系を示す。 |
unit | 座標系 以下2つの座標系の中から使用している座標系を示す。
|
lat | 座標系 以下2つの座標系の中から使用している座標系を示す。
|
lon | 経度 座標系に則した表記方法で経度を記述する。符号つきの度で表し、東経を+ (または省略) 西経を−とする。
|
[取得方法]
位置情報を取得するには、link先を以下のように指定します。
device:location?url=http://hogehoge.com/index.php
hogehoge.com/index.phpの部分には任意のアドレスを指定します。
具体的には
<a href="device:location?url=http://hogehoge.com/index.php">位置情報を取得</a>
などのように記述します。
そうすると
http://hogehoge.com/index.php?datum=AAA&unit=BBB&lat=XXX&lon=YYY
などのURLが呼び出され、各パラメータの値をGETで取得することができます。
GPS
簡易位置情報に比べ、かなり精度は高いです。
位置情報を取得するには
<a href="device:gpsone?url=[送り先URL]&ver=1&datum=0&unit=0">GPS情報の取得</a>
と記述します。
取得できるパラメータ一覧
引数名 | 内容 |
---|---|
ver | GPSのバージョン |
datum | 測地系 (0:WGS84 , 1:tokyo) au技術情報では、WGS84で統一 |
unit | 経度緯度の表記方法 (0:dd.mm.ss.sssの度分秒表記 , 1:dd.dddの度表記)au技術情報では、度分秒で統一 |
lat | 緯度 |
lon | 経度 |
alt | 高度 |
time | 時間 |
smaj | 長軸半径誤差 |
smin | 短軸半径誤差 |
vert | 高度誤差 |
majaa | 誤差楕円長軸角度 |
fm | 測位方法(何を使用して測位したかを数値で表しています。数値が少ない程、精度が高いようです) |
GPSにおいても、GETで位置情報が送られてきます。
<?php $lat = $_GET['lat']; //緯度 $lon = $_GET['lon']; //経度 echo "緯度: ".$lat; echo "経度: ".$lon; ?>
Docomo
Docomoにおいての位置情報取得方法は
- オープンiエリア
- GPS
の2種類があります。
オープンiエリア
DocomoのCGIにリンク先を設定するタイプ。
[取得方法]
例として、http://hogehoge.com/index.phpに位置情報を送信する場合
<a href=" http://w1m.docomo.ne.jp/cp/iarea?ecode=OPENAREACODE &msn=OPENAREAKEY&nl=http://hogehoge.com/index.php&arg1=aaa%3dhogehoge&arg2=&posinfo=2">位置情報を取得</a>
というふうに記述します。
送信するときに指定できるパラメータとして以下のものがあります。
引数名 | 内容 |
---|---|
ecode(必須) | OPENAREACODE(固定) |
msn(必須) | OPENAREAKEY(固定) |
nl(必須) | 位置情報を送信するURL(絶対URL) |
posinfo | 1の場合は「緯度経度」と「エリアコード」を送信する。 2の場合は「緯度経度」のみ送信。 |
arg1 | 送信先に渡したい引数を指定することができる。 [ aaa=hogehoge ]を送りたい場合はURLエンコードして[ arg1=aaa%3dhogehoge ]という形にする。 |
arg2 | arg1と同じ |
送信先スクリプトでは、POSTで位置情報を取得します。
取得できるパラメータは以下の通り。
パラメータ | 内容 |
---|---|
ACTN | OKと入る |
LAT | 緯度座標DMSタイプ ±DD.MM.SS.SSS |
LON | 経度座標DMSタイプ ±DD.MM.SS.SSS |
GEO | 測地系 wgs84 もしくは WGS84 |
XACC | 測位レベル1〜3の値。水平誤差が [3]50m以内。[2]50m〜300m。[1]300m以上 |
AREACODE | 基地局エリアコード 5桁数値 |
POSINFO | 送信したposinfoの値と同値 |
arg1やarg2で指定した引数 | 上記のように指定すれば[ aaa=hogehoge ]が返る |
注意点
UserAgentはわたるがUTN(固体識別番号)は返らない。
GPS
[取得方法]
http://hogehoge.com/index.phpに位置情報を送信する場合、
<a href="http://hogehoge.com/index.php" lcs>位置情報を取得</a>
と記述します。
送信されてきた位置情報は、GETで取得。
送信されるパラメータは以下の通り。
パラメータ | 内容 |
---|---|
lat | 緯度座標DMSタイプ±DD.MM.SS.SSS |
lon | 経度座標DMSタイプ ±DD.MM.SS.SSS |
geo | 測地系 wgs84 もしくは WGS84 |
x-acc | 測位レベル1〜3の値。水平誤差が [3]50m以内。[2]50m〜300m。[1]300m以上 |
alt | 高度 +10など |
DocomoのGPSによる位置情報は非常に楽に取得できますね。