| Yaskey |
GPS携帯 位置情報 基礎知識 |
update:2007/03/05 |
▼ GPS携帯と携帯サイトの作り方に関する基礎知識のメモです。
- メニュー
- 関連ページ
- GPS携帯 位置情報 システム for au (PHP/MapScriptベースのWebスクリプト)
- GMapsBBS Beta (Google Maps と GPS携帯を連携したBBS)
日本地図 首都圏エリア 大阪エリア
この画像の最終更新日:2008/08/18 20:21
この画像は、GPS携帯から取得したアクセスポイントをローカルサーバのMapServerで生成し、その画像を1日1回自動でUpdateさせています。
■ GPSとは
- GPSとは Global Positioning System (全地球的測位システム)の略で、米国防総省が管理する衛星からの電波を利用し、緯度、経度、高度などを数十メートルの精度で割り出し、現在地を知らせるシステムです。
- GPS携帯においては、米国のQUALCOMM社が開発したgpsOneをKDDI が2001年から採用し、他社をリードしています。また日本では、緊急通報時の位置通報システムへの対応として、来年の2007年4月から原則として携帯にGPS機能内蔵が義務化され、今後も注目される機能のひとつとなります。
■ 携帯各社のGPS位置情報の取得方法 ▼ 携帯各社で、GPS情報を取得する方法 ※2006年10月現在の携帯各社の技術情報をまとめたものです。もし誤りがあればお知らせ下さい。
自分のGPS携帯で作動確認してみる(GPS携帯で次のURLにアクセスしてください。不具合の場合は掲示板へご意見下さい)
http://www.yaskey.cside.tv/mapserver/gmapsbbs/gps.php QRコードを表示
au
- 参考先 > KDDI au: 技術情報 > 簡易位置情報
- GPS情報の取得方法
簡易位置情報 と gpsOne
auのGPS携帯では、2つの位置情報取得方法があります。ひとつは、基地局から位置情報を取得する方法(簡易位置情報)。もうひとつはGPS衛星と基地局から位置情報を取得する方法です。これらでは携帯の種類と位置情報の精度にちがいがあります。
- 簡易位置情報の取得方法
次のURLを自分のWebアプリケーション[送り先URL] にリンクさせて取得する。
<a href="device:location?url=[送り先URL]">簡易位置情報の取得</a>
詳細は KDDI au 技術情報 > 簡易位置情報 で公開されています。
- gpsOne
次のURLを自分のWebアプリケーション[送り先URL] にリンクさせて取得する。
<a href="device:gpsone?url=[送り先URL]&ver=1&datum=0&unit=0">GPS情報の取得</a>
- GPS情報の取得結果
- 簡易位置情報で渡されるクエリは、KDDI au: 技術情報 > 簡易位置情報 を参照
位置情報の精度は高くありません。
- gpsOneで渡される情報 (au技術情報では非公開 )
gpsOneでは、他の携帯会社よりも多くの情報と精度の高い位置情報が得られます。
クエリ結果(例)
ver=1&datum=0&unit=0&lat=%2b34.44.36.02&lon=%2b135.26.44.35&alt=33&time=20061021144922&smaj=104&smin=53&vert=41&majaa=96&fm=2
- ver=1 GPSのバージョン
- datum=0 測地系 { 0:WGS84 | 1:tokyo } au技術情報では、WGS84で統一
- unit=0 経度緯度の表記方法 { 0:dd.mm.ss.sssの度分秒表記 | 1:dd.dddの度表記 } au技術情報では、度分秒で統一
- lat=%2b34.44.36.02 緯度 %2bは+
- lon=%2b135.26.44.35 経度 %2bは+
- alt=33 高度
- time=20061021144922 時間 2006年10月21日14時49分22秒
- smaj=104 長軸半径誤差
- smin=53 短軸半径誤差
- vert=41 高度誤差
- majaa=96 誤差楕円長軸角度
- fm=2 測位方法(何を使用して測位したかを数値で表しています。数値が少ない程、精度が高いようです)
- 参考 > ezplusことはじめさん
- GPS情報の精度について
auではgpsOneパラメータ情報は非公開なので、どれを持ってGPSの精度を表しているのか明確には分かりませんが、こちらで検証した結果は、次の通りです(恐らくNAVITIMEへ渡すパラメータは測地系・座標値以外にfmの測位モードだけのため、この数値で精度を判断しているものと思われます)
- fmの値 / au表示★数 / au表示アンテナ数
- 0 / 3 / 3
- 1 / 2 / 2
- 2 / 2 / 2
- 3 / ? / ?
- 4 / 1 / 1
- 5 / ? / ?
DoCoMo
- 参考先
- GPS情報の取得方法
- FOMA(一部の機種を除く)の機種
次のURLを自分のWebアプリケーション[送り先URL] にリンクさせて lcs を付加して取得する。
<a href="[送り先URL]" lcs>
- mova(一部のFOMA機種)の機種
フォームnameで navi_pos を指定して取得する。※リンク用の aタグには非対応のようです。
<input type="submit" name="navi_pos" value="任意の文字列">
- GPS情報の取得結果
- FOMA <a href="[送り先URL]" lcs>を指定した場合、以下のGPS情報が渡されます。
クエリ結果(例)
[送り先URL]?lat=%2B35.00.35.600&lon=%2B135.41.35.600&geo=wgs84&x-acc=3
- lat=%2B35.00.35.600 緯度 %2Bは+(全て±dd.mm,ss.sssの度分秒表記)
- lon=%2B135.41.35.600 経度 %2Bは+(全て±dd.mm,ss.sssの度分秒表記)
- geo=wgs84 測地系 { wgs84 | tokyo }
- x-acc=3 測位レベル { 3:水平誤差<50m | 2:50m≦水平誤差<300m | 3:300m≦水平誤差 }
- mova <input type="submit" name="navi_pos" value="任意の文字列">を指定した場合、以下のGPS情報が渡されます。
クエリ結果(例)
[送り先URL]?pos=N**.**.**.**E***.**.**.**&geo=wgs84&X-acc=3¶m=a
- pos=N**.**.**.**E***.**.**.**
座標値(緯度/経度順) { N:北緯 | S:南緯 | E:東経 | W:西経 } (全て±dd.mm,ss.sssの度分秒表記)- param=a 任意のパラメータ { パラメータ名(任意)=パラメータ値(任意)}
- その他 geo,X-acc は上記に同じ
SoftBank
- 参考先 > ソフトバンク>ウェブ技術情報/位置情報について
- 注意事項
- 位置情報の種類について
SoftBankの位置情報は、3GC型携帯とそれ以外で、位置情報のリクエストと取得方法が違います。
- 精度について
SoftBankの位置情報は、技術情報によるとソフトバンク基地局周辺の大まかな位置情報(○○町まで)となるらしく、あまり精度の高い位置情報は望めそうにありません(自分で確かめた訳ではありませんが)
- GPS情報の取得方法
- 3GC型の簡易位置情報・S!GPSナビ情報の取得方法
locationスキームを使用する。location:後は { cell:簡易位置情報 | gps:S!GPSナビ | auto:端末で優先された測位 } のいずれかを指定します。
<a href=location:auto?[送り先URL] >
- 3GC型以外の簡易位置情報
z属性を記載して使用する
<a href="[送り先URL]" z>
- GPS情報の取得結果
- 3GC型の簡易位置情報
リクエストヘッダーで次の情報が渡されます。
[送り先URL]?pos=N**.**.**.**E***.**.**.**&geo=wgs84&x-acr=3
- pos=N**.**.**.**E***.**.**.** 座標値(1/100秒単位で度分秒表記) N は北緯、Sは南緯、Eは東経、Wは西経
- geo=wgs84 測地系 { wgs84 | tokyo | itrf }
- x-acr=3 精度 { 1:簡易位置情報(300m以上) | 2:S!GPSナビ(50m〜300m) | 3:S!GPSナビ(50m以内) }
- 簡易位置情報の取得
x-jphone-geocodeリクエストヘッダーに載せて渡されます。
※PHPの場合、<? $_SERVER [ 'HTTP_X_JPHONE_GEOCODE' ] ; ?>と記述すると、以下の情報が取得できます。なお、クエリ結果は、Shift_JISでエンコードされてます
※測地系は日本測地系のみ
x-jphone-geocode = "x-jphone-geocode" ":" geocode "%1A" address
geocode = latitude "%1A" longitude
address = <住所>
latitude = ladegree minute second 緯度(北緯のみ)
longitude = lodegree minute second 経度(東経のみ)
ladegree = 緯度 { 2桁 | 3桁 } 通常は2桁で表示され、位置情報が取得できなかった場合には000と0が3桁ならぶ
lodegree = 経度 3桁
minute = 分 2桁
second = 秒 2桁
※位置情報が取得できなかった場合は
0000000%1A0000000%1A%88%CA%92%75%8F%EE%95%F1%82%C8%82%B5
が渡されます(経度緯度を0で表し、「位置情報なし」をShift_JISでエンコードされたクエリとなります)
WILLCOM
- 参考先 > WILLCOM|ウィルコムの電話機向けホームページの作成方法 > 応用編(pdf)
- 位置情報検知サービスで位置情報を伝える仕組みを使用。取得方法は次の通り、1種類で渡されるパラメータも座標値のみ。
- GPS情報の取得方法
- location.request/dummy.cgi? をそのまま記述し、my=の後に送り先URLを記述し、&pos=$locationをつなげます
<a href="http://location.request/dummy.cgi?my=[送り先URL]&pos=$location">
- GPS情報の取得結果
- GETで、次の位置情報クエリが渡されます。
[送り先URL]?pos=N35.44.33.150E135.22.33.121
- pos 座標値/緯度経度順、dd.mm.ss.sssの度分秒表記 (N は北緯、Sは南緯、Eは東経、Wは西経)
- 測地系は恐らく、日本測地系
■携帯各社のユーザーエージェント 前項の位置情報取得方法の通り、同じ携帯会社の中でも機種によって、位置情報の取得方法や取得結果が異なります。このためマルチキャリア対応の位置情報システムを作成するためには、ユーザーエージェントによって、位置情報の取得方法を振り分ける作業が必要となります。
ユーザーエージェントの取得方法
いずれの携帯会社においても、HTTP Requestヘッダ情報のHTTP_USER_AGENTを取得することでユーザーエージェント(携帯ユーザーの種類)を判別することができます。
PHPでは
<? echo $_SERVER['HTTP_USER_AGENT']; ?>
と記述します。
- au > 参考先 / KDDI au 技術情報 ユーザーエージェント
- WAP2.0ブラウザ端末(W21H)の場合、次のように表示されます
HTTP_USER_AGENT=KDDI-HI32 UP.Browser/6.2.0.6.2 (GUI) MMP/2.0
区切り文字は半角スペース" "
- KDDI-HI32 [ 携帯会社名-機種名(デバイスタイプ) ]
- UP.Browser/6.2.0.6.2 [ ブラウザ名/ブラウザバージョン ]
- (GUI) [ 規定値 ]
- MMP/2.0 [ サーバー名 ]
- HDMLブラウザ端末の場合、次のように表示されます
HTTP_USER_AGENT=UP.Browser/3.04-ST13 UP.Link/3.4.5.9
- ※KDDI は表示されません
- UP.Browser/3.04-ST13 [ ブラウザ名-機種名 ]
- UP.Link/3.4.5.9 [ ザーバ名 ]
- 参考資料
- au 技術情報 > 携帯端末機種のブラウザ一覧
- au 技術情報 > 機種別デバイスタイプ一覧
- DoCoMo > 参考先 / 作ろうiモードコンテンツ:iモード対応HTMLの考え方 | NTTドコモ
- iモード対応HTML5.0 の場合、次のように表示されます
DoCoMo/1.0/D505i/c20/TB/W20H10/serNMAIA000001
区切り文字は半角スラッシュ"/" ただし、FOMAの場合は
DoCoMo/2.0 F900i(c100;TC;W22H12)
DoCoMo/2.0 の後、半角スペース " "
- DoCoMo [ 全機種とも共通 ]
- 1.0 [ 1.0:PDC、2.0:FOMA ]
- D505i [ 機種名 ]
- c20 [ キャッシュ ]
- TB [ 状態コード ]
- W20H10 [ ブラウザ表示可能バイト数 ]
- serNMAIA000001 [ 個体識別情報 ]
- 参考資料
- NTTドコモ > 作ろうiモードコンテンツ:ユーザエージェント一覧
- SoftBank > 参考先 / ソフトバンク:ユーザーエージェントについて
- SoftBank 3G Seriesの場合、次のように表示されます
SoftBank/1.0/910T/TJ001/SN*** Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
- SoftBank ※次の3種いずれか { J-PHONE | Vodafone | SoftBank }
- 1.0 [ ブラウザバージョン ]
- 910T [ 機種名 ]
- TJ001 [ 端末バージョン ]
- SN*** [ ***は端末シリアル番号 ]
- Browser [ ユーザエージェント種別 ]
- NetFront [ ユーザエージェント名]
- 3.3 [ ユーザエージェントバージョン]
- Profile/MIDP-2.0 Configuration/CLDC-1.1[ Java情報(Profile /Configuration/) ]
- WILLCOM > 参考先 / WILLCOM|ウィルコムの電話機向けホームページの作成方法
- WS003SH の場合、次のように表示されます
Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; SHARP/WS003SH; PPC; 480x640)
Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; メーカー/機種名/; PPC; 480x640)
- WX310SA の場合、次のように表示されます
Mozilla/3.0(WILLCOM;SANYO/WX310SA/2;1/1/C128) NetFront/3.3
Mozilla/3.0(WILLCOM:メーカー/機種名/機種バージョン/搭載ブラウザバージョン/キャッシュ)ベースブラウザ
もしくは、NetFrontの場合
Mozilla/4.08(MobilePhone; NMCS/3.3) NetFront/3.3
- Mozilla/3.0
- WILLCOM ※次の2種いずれか { DDIPOCKET | WILLCOM }
- メーカー
- 機種名
- 機種バージョン
- 搭載ブラウザバージョン
- キャッシュ
- ベースブラウザ
■ 携帯各社のホームページ作成方法(マークアップ言語について) ▼ マルチキャリア対応の携帯サイトを作成するためには、携帯各社がどのようなマークアップ言語を採用しているかを知る必要があります。以下に記載のとおり携帯で閲覧できるマークアップ言語はXHTMLが主流となっています。
XHTMLとは、簡単に申し上げれば、HTMLのタグを定められた書式に沿って記述した言語です。つまり、記述のルールを守って作成されたHTMLのページは、基本的に携帯で閲覧することが可能と言えます。
ただし、ルールに沿って作成されていないHTMLは、Internet Explorerなどパソコン画面では表示されますが、携帯では表示させることができません。以下にHTMLタグとの違いや注意点を記載します。
- au
XHTML Basic と HDML の2種類の機種が存在します
- XHTML Basic とは、XHTMLをベースにして携帯端末やPDAなど多彩な端末で使用できるようにするためのマークアップ言語です
いくつかの注意点を守れば、HTMLで書かれたファイルでも XHTML Basic として携帯端末で表示されます。
◆参考サイト / The Web KANZAKI さんのページ > XHTMLの書き方と留意点 と XHTML Basic
- XHTML Basicの注意事項
- テーブルを入れ子にはできない <table>の中に<table></table>はダメ</table> ※Basic
- 要素名と属性名は小文字で書く
- タグを省略できない(開始タグと終了タグを必ず記述する)
- 属性値は、必ず引用符で囲う必要がある
- 「属性名="値"」の形式で指定する ※例)checked などの指定 は、checked="checked"とする
- タグのオーバー・ハングはできない
- 改行タグなどの空要素は、<br></br>とするか、<br />とする
- 1ページのファイル容量は 9KB 程度以内で制作する必要がある
- &は必ず、&と記述する <a href="http://www.hoge.jp/index.php?mode=a&key=1">リンク</a>
- その他
- アクセスキー <a href="xxx.html" accesskey="1">リンク先</a>
- コピーライト属性 <img src="xxx.gif" copyright="yes" alt="テスト画像" />
※添付データ保存、画面メモを禁止することができる。
- HDMLの注意事項
- HDMLとは、携帯端末用に開発された記述言語で、「カード」と「デッキ」という概念を用いて、ページを作成する。
- HTMLで記述されたコンテンツであっても、EZサーバがHDMLに言語変換させて閲覧することができる
- 参考 > KDDI au: 技術情報 > HTML変換仕様
- <head>要素は無視される
- <a>要素の<a href="リンク先URL">のリンク先URLは絶対パスを使用した方が良い。
- コンパイルエラーとなる場合
- <form>タグ内に <div align="center">タグがある場合、またその逆の場合
- <form>タグ内に <center>タグがある場合、またその逆の場合
- <form> 〜 </form> の間に <a href=....> 〜 </a> といった記述がある場合
- <input type="radio">要素で、 NAME="日本語" とした場合
- 同一の入力フォーム内に、複数の <input type="submit"> があった場合、2番目以降の <input type="submit"> は無視される。
- また<form>記述の取扱いは複雑です 参照先 > KDDI au: 入力フォーム変換仕様 > <form>/<label>/<input>
- <center> 〜 </center> 間 に、<hr>要素を記述した場合、<hr>の次からの文字列はセンタリング表示されない。
※<div align="center"> 〜 <div> も同様
- 機種別のマークアップ言語 > KDDI au: 技術情報 > 機種別情報一覧
- DoCoMo
HTMLとXHTMLの2種類のマークアップ言語を採用し、さらに iモード用に拡張したタグを使用
- iモード対応 XHTML
- WAP Forum(現OMA "Open Mobile Alliance")のXHTML-MPをもとにiモード対応HTMLとの互換性を意識して策定したもの
- 基本的にWAP2.0の主要機能に対応
- iモード対応 HTML
- HTML2.0、3.2、4.0、4.01のサブセット
- SoftBank
- HTML4.01に、若干の削除タグと追加タグがあるソフトバンク向けHTMLを採用
※MMLでも可能だが、同じページに併用しては使用できません
- CSSは使用できません
- <a href="">のURLの末尾は必ず"/"で終了する必要があります
- ハイパーテキストモジュール <a href="">
- アクセスキー <a href="link" accesskey="1"></a>
- メールリンク <a href="mailto:xxx@xxx.xx"></a>
- WILLCOM
- ケータイモード、PCモード、ブラウザ独自モードと3つの表示モードがあり、表示モードによってユーザーエージェントも異なります
- ケータイモードは、CHTML(コンパクトHTML)に準拠
■ GPSメールとは auのみ ▼ GPSメールとは、取得した位置情報クエリをメール本文に付加して送付させることで、相手にその位置情報を知らせることが可能となります。
- auのGPSメール
- GPSメールの位置情報クエリ
http://map.navitime.jp/?datum=0&unit=0&lat=+34.43.53.37&lon=+135.26.10.37&fm=2
- クエリの詳細については、gpsOneの箇所を参照して下さい。
- その他の携帯各社については、確認中です。
■ GPS画像とは auのみ ▼GPS画像とは、GPS情報が付加されたJPEGファイルの事です。au携帯では写真を撮影する前に、現在地の情報を取得することで、撮影した画像ファイルに位置情報をExifとして付加させることができます。
- Exifとは、財団法人電子情報技術産業協会(JEITA)が策定したJEIDA規格に基づいた世界標準の規格(ディジタルスチルカメラ用画像ファイルフォーマット規格)です。
- EXIFで付加されるGPS情報は、座標値はもちろんのこと、測位につかった衛星信号・測位に用いたGPS衛星・衛星の数・衛星の番号やGPS 受信器の移動速度・記録した画像の撮影方向なども記録することができます。詳細はJEIDA規格にあるPDFファイルを参照して下さい。
- PHPでは、EXIFデータを取得する関数、EXIT関数(exif_read_data関数)が用意されており、画像ファイルから簡単にGPSデータを抽出することができます。
- EXIF関数を使用できないサーバでは、代替関数を使用することで、GPS情報を抽出することも可能です。
- 自分が持っているEXIF画像のGPS情報を手っ取り早く見たい場合は、etoさんがPHPへの扉でファイルをアップロードしてGPS情報を表示させるスクリプト et's Exif Viewer をサンプルで公開されています。
Copyright ©2008 Yaskey. All Rights Reserved.