Geolocationとはユーザーの位置情報を教えてくれるAPIです。Geolocationを使って経度と緯度が取得できます。自分はGeolocation以外で位置情報を取得したことがないんですけど、以前は各キャリアごとに独自の仕組みが合ったみたいで、アプリ開発する際にもそれに沿って開発する必要があったらしいです。Geolocationを使えば、統一された方法で、経度、緯度の取得が可能ですが、ブラウザが対応してないとGeolocationを使う事ができないです。
INDEX
仕組み
Geolocationは無線LAN・携帯電話基地局・GPS・IPアドレス等から送信されたデータを取得します。
端末やインターネットの接続方法によって、機能の仕組みが異なります。
デスクトップPCの経度、緯度取得方法
IPアドレスから、現在地を判断します。
無線LANからの経度、緯度取得方法
Wifiアクセスポイントから現在地を判断します。
携帯電話からの経度、緯度取得方法
携帯が、一番近い電波塔のIDを含んでる場合、またはGPS機能が有効である場合、このどちらかか全部を使って、現在地を判断します。
今はこうやって取得されるデータの事を位置情報データって呼んだりしてるみたいです。
対応ブラウザ
Geolocationは以下のブラウザに対応しています。
ブラウザ | 対応バージョン |
---|---|
Internet Explorer | 9以降 |
Firefox | 3.5以降 |
Google Chrome | 5以降 |
Safari | 5以降 |
Opera | 10以降 |
取得できる情報
リクエストが成功すると、Geopositionオブジェクトが返ってきます。
その中に時間とか、位置情報が入ってます。
cordsプロパティ | |
---|---|
latitude | 緯度 |
longitude | 経度 |
altitude | 高度 |
accuracy | 緯度/経度の誤差 |
altitudeAccuracy | 高度の誤差 |
heading | 方向 |
cordsの中にはこれだけの情報が入っています。
経度、緯度の取得方法
GeolocationAPIを使うにはJavaScriptを使います。こうやって書くと、経度と緯度が取得できます。
<script> //Geolocationが使用できるかどうかチェック navigator.geolocation.getCurrentPosition(okCallback, erCallback); //成功時に実行される function okCallback(pos) { //posに経度と緯度が入ってくる lat = pos.coords.latitude; lng = pos.coords.longitude; //経度と緯度を変数に入れる document.write("緯度 "+lat+"<Br />") document.write("経度 "+lng) } //エラー時に実行される function erCallback(er) { errorCode = er.code; } </script>
タイムアウトなどのオプションも指定できるので、マニュアルをチェックしてみて下さい。