Where2.0:Google Maps APIがバージョンアップ。ジオコーディングが可能に
June 13, 2006 4:15 PM by funami

フナミタカオです。
6/12に開催された、Geo Developer Dayにて、 Google Maps APIのバージョンアップが発表されました。
このバージョンアップにより、ついにジオコーディング(住所から、緯度経度を算出する機能)ができるようになりました。
このことについては、大井研究員も書いていますが、僕たちが一番望んでいた機能をリリースしてもらったということで、早速、サンプルをためしてみました。
ドキュメントは、Geocoding using JavaScript@Google Maps API Version 2 Documentation←こちらにあり、サンプルも載っているのですが、このサンプルは、6月13日15時30分(日本時間)現在、エラーがでて動作していません。6/14 5:20、動くことを確認しました。
そこで、たたみラボのサーバーにて、サンプルソースを動くようにしました。
「GoogleMapsAPIによるジオコーディングのサンプル」をご覧ください。
特徴
・日本語に対応
・クライアントサイドで、クエリ結果をデフォルトでキャッシュする。これにより、同じ地名の検索は、サーバーに問い合わせることなく、表示される。
・複数の検索結果を取得する場合には、getLocations(address, callback)メソッドを使用する。複数の検索結果があっても、1件だけの戻りでよければgetLatLng(address, callback)メソッドを利用する。
・HTTPリクエストを使用して、XMLで検索結果を取得することも可能。KMLという、位置を記述する形式でもどる。このKMLはGoogleEarthでも位置を示す標準フォーマットになっていて、位置情報記述の標準を目指しているらしい。
勝どき検索の例。q=の値である%E5%8B%9D%E3%81%A9%E3%81%8Dは「勝どき」をURLエンエンコードした文字列
http://maps.google.com/maps/geo?q=%E5%8B%9D%E3%81%A9%E3%81%8D&output=xml&key=**key**
**key**は、APIキー
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Response>
<name>勝どき</name>
<Status>
<code>200</code>
<request>geocode</request>
</Status>
<Placemark>
<ddress>日本東京都中央区勝どき</address>
<AddressDetails xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0">
<Country>
<CountryNameCode>JP</CountryNameCode>
<AddressLine>東京都中央区勝どき</AddressLine>
</Country>
</AddressDetails>
<Point>
<coordinates>139.775693,35.658192,0</coordinates>
</Point>
</Placemark>
</Response>
</kml>
output=jsonとすると、JSONオブジェクトで結果が返る。そのまま使えて便利。しかし、ここで気づいたのだが、jsonの場合は、複数の候補が戻るが、XMLの場合は1つだけ、同じクエリなのに、異なる結果になるのは、不具合かも。
{name: "勝どき",Status: {code: 200, request: "geocode"}, Placemark: [{address: "日本東京都中央区勝どき",AddressDetails: {Country: {CountryNameCode: "JP", AddressLine: ["東京都中央区勝どき"]}},Point: {coordinates: [139.775693, 35.658192, 0]}},{address: "日本東京都中央区勝どき2丁目",AddressDetails: {Country: {CountryNameCode: "JP", AddressLine: ["東京都中央区勝どき2丁目"]}},Point: {coordinates: [139.778483, 35.658512, 0]}},{address: "日本東京都中央区勝どき1丁目",AddressDetails: {Country: {CountryNameCode: "JP", AddressLine: ["東京都中央区勝どき1丁目"]}},Point: {coordinates: [139.776407, 35.660269, 0]}},{address: "日本東京都中央区勝どき3丁目",AddressDetails: {Country: {CountryNameCode: "JP", AddressLine: ["東京都中央区勝どき3丁目"]}},Point: {coordinates: [139.774642, 35.658757, 0]}},{address: "日本東京都中央区勝どき4丁目",AddressDetails: {Country: {CountryNameCode: "JP", AddressLine: ["東京都中央区勝どき4丁目"]}},Point: {coordinates: [139.776068, 35.657078, 0]}},{address: "日本東京都中央区勝どき6丁目",AddressDetails: {Country: {CountryNameCode: "JP", AddressLine: ["東京都中央区勝どき6丁目"]}},Point: {coordinates: [139.772370, 35.654995, 0]}},{address: "日本東京都中央区勝どき1丁目13",AddressDetails: {Country: {CountryNameCode: "JP", AddressLine: ["東京都中央区勝どき1丁目13"]}},Point: {coordinates: [139.775301, 35.660774, 0]}},{address: "日本東京都中央区勝どき6丁目5",AddressDetails: {Country: {CountryNameCode: "JP", AddressLine: ["東京都中央区勝どき6丁目5"]}},Point: {coordinates: [139.772233, 35.654974, 0]}},{address: "日本東京都中央区勝どき5丁目",AddressDetails: {Country: {CountryNameCode: "JP", AddressLine: ["東京都中央区勝どき5丁目"]}},Point: {coordinates: [139.771538, 35.656603, 0]}},{address: "日本東京都中央区勝どき6丁目5−23",AddressDetails: {Country: {CountryNameCode: "JP", AddressLine: ["東京都中央区勝どき6丁目5−23"]}},Point: {coordinates: [139.771969, 35.654884, 0]}}]}
・一日のクエリ件数は50000件に制限されているので、ユーザーが多いサイトでは要注意。
・緯度経度抽出のアルゴリズムは、GoogleMapsと同じ。
TRACKBACK URL:
POST COMMENT
TRACKBACKS
? Google Map APIがバージョンアップ。ジオコーディングに対応 by Google Map APIがバージョンアップしました。今回の目玉は何と言ってもジオコーディング(住所から緯度・経度の算出)でしょう。これで新しいサービス...
? Google Maps APIで地名から緯度・経度が取得可能に by F.Ko-Jiの「一秒後は未来」えー、Google Maps APIで、ジオコーディングが、できるようになったそうです。(by 児玉清) ・たたみラボ - Where2.0:Google...
? ジオコーディング by 私的ログ(別館) これよいですね。 http://www.tatamilab.jp/rnd/archives/000218.html
? 【Google Maps】ジオコーディングが実装されました by JavaScript++かも日記Google Maps API へついに、日本でも動作するジオコーディングが実装されたようです。 Geocoder Examples http://www...
? Google Maps APIでGeocordingが可能に by Digital Life Innovator» Where2.0:Google Maps APIがバージョンアッ...
? Where2.0:GoogleがGeocodingAPIリリース! by たたみラボ大井宏友です。 Where2.0のプレイベントでGoogle Geo Dayに参加していますが、 GoogleがMapAPIの新機能としてGeocodin...
? Google Map by miracleさんのミラクルな日常こっそりとヴァージョンアップしてたみたいです。Google Maps API。
? Google Maps APIでジオコーディング(;_;) by SeaGate Blog下の記事で
? Google Maps APIで日本のジオコーディングは使えなくなりました by F.Ko-Jiの「一秒後は未来」「Google Maps APIで地名から緯度・経度が取得可能に」という記事にも書いた通り、Google Maps APIにジオコーディングができるクラス...
? Google MAP APIがgeocodingをサポート by 断線亭日乗 Google MAPでgeocodingがサポートされるようになった (たたみ...
? Google MAP APIがgeocodingをサポート by 断線亭日乗 Google MAPでgeocodingがサポートされるようになった (たたみ...
? 住所を緯度・経度へ変換(Ruby + Google Maps API) by PCラボ 〜 興味の赴くままに 〜 探せばあるのでしょうが、RubyとGoogle Maps APIを使用した 「住所から緯度・経度への変換」のサンプルプログラムです。 言語・Web AP...


COMMENTS
これいいですね。
PerlでもJSONのパースはわりと簡単で、配列とハッシュの区別がついて便利なので、常にJSONモードで使ってもいいかも。
June 14, 2006 12:30 AM by 山本ゆうご現時点で、日本語でクエリーを投げると、
June 15, 2006 11:26 AM by morimaps.google.com は 610、
maps.google.co.jp は 603 のステータスコードを返すだけで結果は返してくれないみたいですね。残念
moriさんありがとうございます。
June 15, 2006 1:48 PM by 大井宏友米国西海岸時間での朝9時前後はgoogle.comで問題なく結果が返ってきていたのですが、15時過ぎにはgoogle.comでも日本語アドレスに関しては603(G_GEO_UNAVAILABLE_ADDRESS)のエラーが戻ってきている状態です…残念
2006年12月7日ついに復活!
December 9, 2006 10:48 PM by フナミタカオhttp://googlemapsapi.blogspot.com/2006/12/japanese-address-and-placename-support.html
-----------------------
Google Maps APIでも、日本の住所や駅名によるジオコーディングがご利用いただけるようになりました。Maps APIを利用したサイトでは、Google マップと同様、ユーザーが入力した住所の緯度経度を割り出し、表示される地図の場所させることができようになりました。実装例はこちらをどうぞ。
-----------------------
とのことです!
やったー!
いや~。この日をまってました!
December 11, 2006 10:47 PM by アキラどうもここにあるサンプルのようにoutputをxmlにすると、座標を返してくれなくなってしまったようです。
January 22, 2007 8:10 PM by ken一晩たちましたら、上記の不具合が改善されたようです。
January 23, 2007 10:29 AM by kenお騒がせしてすみませんでした。