携帯位置情報(GPS)
多くの携帯では簡易位置情報やGPSによって位置情報をサーバーに対して送信可能です。
| キャリア | 方法 | 取得方法 | 備考 |
| DoCoMo Mova | submitのnameを"navi_pos" | URLパラメーター | F661i,F505iGPS (詳細不明) |
| DoCoMo FOMA | フォームやアンカーに "lcs" | URLパラメーター | 903i以降 |
| DoCoMo(iエリア) | http://w1m.docomo.ne.jp/cp/iarea | POSTパラメータ | 全機種 |
| EZweb(簡易) | device:location | URLパラメーター | |
| EZweb(GPS) | device:gpsone | URLパラメーター | 非公式 |
| SoftBank | フォームやアンカーに "z" | HTTPヘッダー | |
| SoftBank(3GC) | location:auto | URLパラメーター | auto,gps,cellが指定可能 |
DoCoMo FOMA
フォームやアンカーに "lcs" を記述することで位置情報が送信されます。以下はHTMLの例です。
<a href="http://www.utilz.jp/loc.jsp" lcs>位置送信</a>
上記によって、サーバーには以下のようなリクエストが発生します。
GET /loc.jsp?lat=%2B35.40.53.008&lon=%2B139.45.57.971&geo=WGS84&x-acc=3
DoCoMo iエリア
フォームやアンカーのURLをhttp://w1m.docomo.ne.jp/cp/iarea にすることで位置情報が指定URLへHTTP POSTで送信されます。取得できるのはエリアコードと言われる505個のエリアに対応するコードで、精度はかなり粗くなりますが、iモード対応端末全てで利用できます。
<%
String param = java.net.URLEncoder.encode(
"http://www.utilz.jp/loc.jsp", "ISO-8859-1");
String url = "http://w1m.docomo.ne.jp/cp/iarea?" +
"ecode=OPENAREACODE&msn=OPENAREAKEY" +
"&nl=" + param;
%>
<a href="<%=url%>">位置送信</a>
詳細な情報がDoCoMoのサイト
から提供されています。
EZweb(簡易)
フォームやアンカーのURLを device:location?url=URLのようにすることで指定したURLに位置情報が送信されます。以下はjspでの例です。
<%
String param = java.net.URLEncoder.encode(
"http://www.utilz.jp/loc.jsp", "ISO-8859-1");
%>
<a href="device:location?url=<%=param%>">位置送信</a>
上記によって、サーバーには以下のようなリクエストが発生します。
GET /loc.jsp?datum=tokyo&unit=dms&lat=35.40.53.0&lon=139.45.57.97
au技術情報
に記載されていますが、datumの値は常にWGS84として扱う必要があるようです。また、datumの値に "1"など、意味不明な値がセットされることを確認しています(W41K?)。その他、lat及びlonに符号が付く場合もあるようです(W21CA?)。
詳細については未確認ですので、実機にてご確認ください。
SoftBank
フォームやアンカーに "z" を記述することでHTTPヘッダーのx-jphone-geocodeに位置情報が通知されます。以下はHTMLの例です。
<a href="http://www.utilz.jp/loc.jsp" z>位置送信</a>
上記によって、loc.jspのリクエスト時にHTTPヘッダー(x-jphone-geocode)が以下のようにセットされます。
x-jphone-geocode: 354053%1A1394557%1A(住所がSJISでエンコードされたもの)
"%1A"(SUB)で区切られて lat, lon, 住所(SJISでエンコード)の形式になります。住所はドキュメントを見る限りSJISでエスケープしたものとなっていますが、正しくデコードできない場合がありました。この情報は利用しない方が良いのかも知れません。
java.net.URLDecoderを使っていたため、正しくデコードできなかっただけでした(2008/04/18)。
SoftBank(3GC)
フォームやアンカーのURLを location:auto?url=URLのようにすることで指定したURLに位置情報が送信されます。以下はHTMLでの例です。
<a href="location:auto?url=http://www.utilz.jp/loc.jsp">位置送信</a>
auto(端末の設定)、cell(簡易)、gps(GPS)が指定可能です。SoftBank 3GCでは他と異なり、リクエスト時に追加のパラメーターを指定できます。urlの後に &name=value のように指定します。原因は不明ですが、urlのパラメーター値をURLエンコードすると正しく動作しませんので注意してください。
上記によって、サーバーには以下のようなリクエストが発生します。
GET /loc.jsp?pos=N35.40.53.00E139.45.57.97&geo=wgs84&x-acr=1
※ 上記例のURLに指定されている http://www.utilz.jp/loc.jsp は例です。実際にリクエストを受けるCGIを作成し、そのURLで置き換える必要があります。