Techie Site

RSS

Ads

ブログ内検索


成果物

iGoogle用ガジェット

  • 経路マップ

__

« iPhoneのカスタム着信音の作り方 | メイン | 警告サイン »

Google AJAX Search API で IPアドレスから位置情報を取得

Google AJAX Search API の公式ブログにサイト閲覧者のIPアドレスから位置情報(緯度、経度、国名、地域名など)を取得する方法が紹介されていたので、早速試してみた。

 ★Where is my current user?

やり方は無茶苦茶簡単。

国名を取得したければ google.loader.ClientLocation.address.country を、緯度を取得したければ google.loader.ClientLocation.latitude を呼び出すだけ。

以下にサンプルコードを示す。

10:		onload = function() {
11: document.getElementById("country").value = google.loader.ClientLocation.address.country;
12: document.getElementById("country_code").value = google.loader.ClientLocation.address.country_code;
13: document.getElementById("region").value = google.loader.ClientLocation.address.region;
14: document.getElementById("city").value = google.loader.ClientLocation.address.city;
15: document.getElementById("latitude").value = google.loader.ClientLocation.latitude;
16: document.getElementById("longitude").value = google.loader.ClientLocation.longitude;
17: }
18: //]]>
19: </script>
20: </head>
21: <body>
22: 国名:<input type="text" id="country" /><br />
23: 国コード:<input type="text" id="country_code" /><br />
24: 都道府県:<input type="text" id="region" /><br />
25: 市区町村:<input type="text" id="city" /><br />
26: 緯度:<input type="text" id="latitude" /><br />
27: 経度:<input type="text" id="longitude" /><br />
28: </body

11~16行目の赤字の部分がAPIから取得した位置情報で、それをbodyのテキストボックスに突っ込んでいるだけである。(Google AJAX Search API自体の使い方がよくわからない場合は、こちらの記事を参照)

こんなに簡単に実装できて非常に便利で良いのだが、やはりIPアドレスから住所というのはあまり正確に取れる筈も無く、自分で試したところ東京の下町で実行したにも関わらず、渋谷区になってしまっていた。

まあ、県単位でも住所がわかれば利用価値はあるので、よしとしておこう。

そんなわけで、今まで公開してきた地図系のアプリ(「経路マップ」と「お天気情報掲示板」)にもこの機能を適用してみた。

今までは一律、「東京都千代田区大手町1-1-1」だったので、東京以外の方には便利になったと思うが、使い勝手が悪くなったようだったらコメント下さい。

※ (2008/9/23) なぜかgoogle.loader.ClientLocationがnullを返すようになったので、nullの場合にはデフォルトの初期位置を返すように修正。


コメント

コメントを投稿