[技術資料室] [ハード部屋]
[ネットワーク編]
[フォーマット辞典]
[DevNews]
[au] [A5502K]
au のGPS携帯 C3003P (Panasonic製) を買ってみたので、そのGPS機能を活用するためのメモなんかを。それからA5502K(京セラ製)にも機種変したので、そこの比較とか。どっちも電子コンパス付き。
自分の位置を調べて相手に送ると、その場その場の待ち合わせ等々に便利です。というわけで、いろいろ便利に活用してみましょう。
取得するのは、何種類か方法がありました。
電子コンパスは、BREWアプリ、Javaアプリからしか使えません。C3003Pはキチ熊、NAVITIMEの2つと、PのサイトからダウンロードできるJavaアプリ1つ。A5502KはEZナビウォークを各所から呼び出して地図を表示したときのみ。
Javaアプリの「どこでもフィッシング」からも利用できていたのですが、解析情報はありません。
PCと接続してGPSを使うことはできません。
EZナビウォークがありますが、イヤホンマイクつけてナビしたほうがいい・・・かも。マナーモードにするとナビの声まできこえない。
GPS、EZナビウォークなどの連携がいいですね。メール貼付URL、アドレス帳などからEZナビウォークが開きます。
GPSに関連するメニューは、一カ所に固まっているのではなく、あちこちにあります。特にコンパスメニューはメニューに組み込まれておらず、コンパスポタンからしか表示することができません。
電子コンパス機能が使えるのは、コンパスメニュー内の地図表示、コンパス表示とNAVITIMEなどのBREWアプリだけです。CGIでは方位情報は取得できないようです。
希望の場所まで行くのだ?
今どこメールが手軽に自分の位置を人に教えられますが、自分が移動する場合は、ディスタンスメーターが便利かもしれません。
目的地をあらかじめPC等で調べ、vCard形式でメール転送しておきます。(座標系は何種類かあるので注意)
ディスタンスメーターで、現在地と比較しながら目的の方向へ向かいます。
ペアモニターだと、もっと便利かもしれない。
いろいろあると書きましたが、現在つかわれているのは、GPSの座標系と、日本測池系の2つだそうです。
GPSで使われているのがwgs84系、日本地図などでよく使われているのが日本測池系(tokyo)。日本測地系は改定されて日本測地系2000(JGD2000)となっていますが、地図で移行しているところは少ないかも。JGD
2000はITRF-94と同じで、wgs84ともほぼ同じです。
au の標準は wgs84系のようです。DoCoMoは未だにtokyoが標準なのかもしれません。
300mぐらい?の違いがあります。変換するには、正確な方法ではx,y,zの3次元座標にしてから変換します。中心がwgs84とtokyoでは違ったり、地球の大きさも少し違うので、それらを考慮しながら変換します。
簡単な変換なら、緯度経度を足し算引き算でもいいかもしれませんが、数mの誤差はでると思います。
地球全体一周で360°です。では、度、分、秒はそれぞれどれくらいなのでしょうか。
GPSの緯度経度は、赤道面の半径が6378137.00m、極方向の半径が6356752.31mとして計算されているようです。赤道面だいたい40075kmこれを360で割ると赤道面で東西方向に1度が111.3km。さらに60で割ると1分が1.86km。さらに60で割ると1秒が30.92mとなります。100分の1秒まで計測できると約30cm単位の精度があるかもしれないということですね。緯度についても、似たような精度です。
日本付近ではどうなるかというと、緯度はだいたいそんな感じで同じです。経度は、緯度37度としてみると、赤道上の約8割のようです。てきとーな計算をすると、表のような感じ?
度 | 分(0.016度) | 秒(0.00027度) | |
---|---|---|---|
緯度 | 111km | 1.86km | 30.9m |
経度 | 88.9km | 1.48km | 24.7m |
GPSでは度だけを小数点表記したり、度分秒で表示したりできます。auのは、度分秒の方が誤差がなければ精度はよさそうです。誤差があるので、どっちがいいのかは、難しいかも。1/100秒では30cm単位の精度になりますが、そんな精度は期待できないのでm単位ぐらいのところで捨てた方がいいかも。
参考
Webのシステムなどで位置を取得する方法のいろいろです。
この仕様は公開されていませんが、解析されています。
<a href="device:gpsone?url=(CGIのURL)&ver=1&datum={0: wgs84 1:日本測地系 tokyo}&unit={0: dms 1:d.xxx}&acry=0&number=0">位置</a>
初期GPS機以外ではacry=0、number=0が必要です。A5502Kでは、datumとunitが1を指定しても0になっていたり、unit指定も無視されて0になったり、非公開仕様を無視した動作をしています。バグ不具合の一種だと思いますが、修正されるかどうかは不明です。他の機種でそのような現象は見つかっていません。
<form action="device:gpsone" method="GET">
<input type="hidden" name="url" value="http://siisise.net/gps.jsp">
<input type="hidden" name="ver" value="1">
<input type="hidden" name="datum" value="1">
<input type="hidden" name="unit" value="1">
<input type="hidden" name="acry" value="0">
<input type="hidden" name="number" value="0">
<input type="submit" value="ぽちっとな">
</form>
<FORM>で指定することも試したところ可能ですが、POSTはできません。測地形などを選択式にすることもできそうです。他のパラメータも付加できません。Java Servletなどではなんとかurlの項目に他の情報も付けられますが、Cookieを使うのがよいかも。
項目 | 概要 | 値 | |
---|---|---|---|
ver | 通信バージョン | 0: Unix Magazineの記事にあったが… |
C3000 |
datum | 測地系 | 0: WGS84 (世界測地系) |
C3000 |
unit | 座標系 | 0: DMS 度分秒 |
C3000 |
acry | 位置情報精度 | 0: FREE |
5000 |
number | 要求測位回数 | 0: デフォルト(1回) |
5000 |
受け取れる情報は、測地系(日本か世界か)、緯度(lan)、経度(lot)、誤差(大と少)、誤差角度、高度、高度誤差、測位時刻、測位方法などです。
名前 | 中身 | CGIの値とJavaの値 | |
---|---|---|---|
time | 測位時刻 | 年月日時分秒 YYYYMMDDhhmmss GPS時間を日本時間に直した時間? |
日時を秒単位で返す。 |
fm | 測位モード | 0: GPS_ FIX:GPSのみ 1: HYBRID_FIX: GPSと基地局を利用した測位 2: AFLT_FIX: 複数基地局からの位置で計測か 3: 不明 未計測 4: SECTOR_CENTER: セクタセンタ 単一基地局の位置を返すかも 5: PREFIX_AFLT: BTS利用 ? ビルなどでGPS電波が乱れたとき? FAIL:失敗 |
数値で返す |
datum | 測地系 | 0: WGS-84 世界測地系 1: TOKYO 日本測地系(改定前のもの) 2: (なし?) |
A5502Kでは0のみ、その他は指定値 |
unit | 座標系 | 0: DMS 1: DEGREE |
A5502Kでは0のみ、その他は指定値 |
lat | 緯度 | unitが0のとき |
+が北緯、
- が南緯 0埋めなし |
lon | 経度 | 同上 | +が東経、
-が西経 0埋めなし |
smin | 最小誤差 | C3003Pでは12 A5502Kでは0012 |
楕円誤差の短軸 |
smaj | 最大誤差 | 同上 | |
majaa | 誤差角度 | 楕円誤差の角度 | |
alt | GPS高度 | GPS面からの高度 | |
vert | 高度誤差 |
fmの値とJavaの値は、たぶんこうかなという組合せにしてみました。
誤差もいろいろ。smajの値です。
fm | 最小の誤差 | 最大の誤差 | |
0 | 7 | 240 | |
1 | 38 | 1087 | |
2 | 28 | 734 | |
3 | |||
4 | 53 | 2138 | 常に真円 |
5 | 115 | 115 | 1回のみ |
5は道路上で計測。2の1分後に計測した場合に出てきたので、GPSをとらえきれず、電波状態もよくないとき? 基地局で想定した距離を超えたときかな?
参考
EZweb用
お試し用 EZナビウォーク/NAVITIMEの地図も表示できたりするようにしてみた。GPS非搭載機でも簡易計測できます。
http://dev.jp/gps.html
とりあえずその他機もメモ
簡易位置測定です。仕様は公開されています。A1304Tは対応していないかもしれません。
<a href="device:location?url=(CGIのURL)">~</a>
GPS非対応カラー液晶機種でも使えます。アンテナ基地の位置を返すので、おおまかな位置しかわかりません。基地局の約10m単位の精度の位置です。
参考
GPS搭載携帯(F505iGPS,F661i)、IO DATAのGPSを接続した場合、iモード対応カーナビなどで利用可。
navi_pos というのを指定します。
<INPUT type="submit" name="navi_pos" value="いろいろ">
パラメータ pos に 緯度経度を共に含めた情報が返されます。geoにtokyo 日本測地形であることが返されます。
X-aceは、GPS対応端末のみ? 誤差情報です。3: 0~50m 2:50~300m 1:300m以上
<a>や<form>にzを付ける。対応していない端末もある。
<a z href="~">リンク</a>
<form z action="~">
どういうことになるかというと、HTTPヘッダに基地局の緯度経度と地名が入ってくる。URLではない。
C3003Pでは、相手に位置を通知するときURLで送るのです。地図だけではわかりにくいなと思っていたところ、A5502KのEZナビウォークはそのURLから起動されたのでした(C3003Pでは受信は未対応)。EZナビのどこかから対応したようです。
メールやWebで対応URLや位置情報付き写真を送信し、WebからBREWアプリなどを起動する(EZナビウォーク A55xx)
EZナビウォークとNAVITIME、どちらのURLも対応しています。その他のWebのURLも対応しているようだったので、どんな感じか確認してみました。
http://~/?datum=0&lat=37.0.0.0&lon=135.0.0.0
メール中のURLに ?datum=x&lat=xx.xx&lon=xx.xx この3つがあれば、位置情報のURLと判定しているようです。EZナビウォークで地図を開くことも、URLを開いてそちらで地図を見ることもできます。
EZナビもCDMA 1x系のGPS搭載機?では対応しているようです。
アドレス帳を貼付して送信してもOKです。(A5502K可。C3003Pは登録可、ディスタンスメーター以外から参照不可)
vCard形式では、位置情報を記録できるようになっていますが、auのvCard形式は、これとは少し違ったもので互換性はありません。試していませんが。
QRコードの読み取りでは、この通知方法に対応していないようですが、ナビウォークのURLからBREWへと繋がってくれます。
参考
XML1.0的なPOIXというのがあるらしい。もとになった組織は解散している?
拡張されたPOIX_MP, POIX_ARIBというものもあり、POIX_EXとして統合された。のか? 他のところに資料がないっぽい・・・。
iモードで受信して、そこまでナビゲーションはできません。
auから送信されてきたNAVITIMEなどの地図は表示できます。
<!-- pos:tokyo --> や<< pos ~>> という仮想TAGでiモード対応カーナビ等で受信できるようです。
経路情報