ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

Geolocation APIとGoogle Geocoding APIで今いるところのだいたいの位置と住所を割りだしてみる

ちょっと前から遊んでみたかったGeolocation APIGoogle Geocoding APIを使って、今いる場所の住所とかを割り出すというのをやってみました。

Geolocation APIとは

HTML5に関する技術のひとつで、使うとWebブラウザで端末の現在地を取得することができます。プライバシーに配慮するべく、このAPIを使う前には必ずダイアログが出て、使うか否かは利用者にゆだねられます。GPSで座標を取得する以外にも、通信基地局やIPアドレスなど、あらゆる手段を駆使して座標を割り出してくれるので携帯端末はもちろんのこと、デスクトップパソコンからでも使えます。GPSを積んでいない端末でも、かなり正確な位置を割り出してくるのでびっくりします。
いたってシンプルなAPIで、一度だけ座標を取得するメソッドと、定期的に座標を取得するメソッド、それから定期的な座標の取得をやめるメソッドがあるだけです。今回はこのうち、以下の一度だけ座標を取得するメソッドのみを使っています。

navigator.geolocation.getCurrentPosition(function(position) {
  //成功時のコールバック
}, function(error) {
  //失敗時のコールバック
});

だいたいこんな感じです。座標はposition.coordsに入っています。

Google Geocoding APIとは

住所から経度と緯度を割り出すことをジオコーディング(Geocoding)といいます。Google Geocoding APIは読んで字のごとくジオコーディングをするシンプルなAPIです。今回は座標から住所を割り出す逆ジオコーディングをするAPIを使って、Geolocation APIを使って取得した座標から住所を割り出しています。
リクエストの投げ方は

http://maps.googleapis.com/maps/api/geocode/json?latlng=緯度,経度&sensor=(true|false)

いずれも必須です。とくにsensorは忘れやすいので要注意。上の例ではJSONで帰ってきますが、必要とあればjsonをxmlにして、XMLで返してもらうこともできます。XHR2に対応しているようで、クロスサイトからのリクエストも受け付けてくれます。

ここまでやる時間<この記事を書く時間なので、思いのほか簡単にできます。それにしてもなんか面白いことできそうですね、これ