API 備忘録 | メシのタネ

newwebweb
このエントリーをはてなブックマークに追加

Geolocationについてしらべてみた

 2014/11/10

Geolocationとはユーザーの位置情報を教えてくれるAPIです。Geolocationを使って経度と緯度が取得できます。自分はGeolocation以外で位置情報を取得したことがないんですけど、以前は各キャリアごとに独自の仕組みが合ったみたいで、アプリ開発する際にもそれに沿って開発する必要があったらしいです。Geolocationを使えば、統一された方法で、経度、緯度の取得が可能ですが、ブラウザが対応してないとGeolocationを使う事ができないです。

仕組み

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>

タイムアウトなどのオプションも指定できるので、マニュアルをチェックしてみて下さい。

参考

Geolocation 機能の仕組み
Geolocation.getCurrentPosition() MDN


このエントリーをはてなブックマークに追加

コメント

"Geolocationについてしらべてみた"
でメシのタネのおすすめを検索したよ!

プログラミング備忘録 | メシのタネ