ジオどす I APIの仕様と使い方

(注意!)このページはジオどすAPI(旧バージョン)の解説ページです。現在、最新版のジオどすⅡAPIを公開しております。

ジオどすAPI(旧バージョン)は今後サービスを停止し、接続先を自動的にジオどすⅡAPIに移行する予定です。(現在、次期は未定です。)フォーマット等は下位互換に配慮しておりますが、他社ジオコーダとの串刺し検索など、一部の機能はライセンスの関係上継承されていないものがあります。予めご了承下さい。


京都通り名ジオコーダ「ジオどす」には4つの使い方があります。用途に合わせてお使いください。

 

1.グーグルマップスAPI(javascript)から使う
グーグルマップスAPI(JavaScript )をお使いの方に朗報。ジオコーダの宣言部分を一箇所変更するだけで、GClientGeocoder.getLatLng()関数が京都対応に!
サンプルはこちら

使い方
i) gclientgeocoder_geodosuextension.js を読込む。
<script src="http://geodosu.com/%3Cspan%20style%3D"color: #ff0000;">http://api.geodosu.com/gclientgeocoder_geodosuextension.js" type="text/javascript"></script>

ii) ジオコーダオブジェクトのインスタンス生成の際、GClientGeocoder()クラスの代わりにGClientGeocoderWithGeodosu()クラスを使用する
動作は京都の通り名に対応している以外全く変わりません。getLatLng()のみ対応しています。getLocation()には対応していません。

変更前 geocoder = new GClientGeocoder();
変更後 geocoder =
new GClientGeocoderWithGeodosu("{APIキー}");

動作:
1.先に本来の GClientGeocoder.getLatLng()を実行します。
2.結果がnullで返ってきたとき(検出失敗)は「ジオどす」で検索します。
3.結果を第二引数の関数に返します(失敗ならnull、成功ならGLatLngオブジェクト)

2.グーグル・HTTPジオコーダー・プロキシ「ジオ櫛Gどす」。
グーグルのHTTPジオコーダと全く同じインプット・アウトプット仕様で、グーグル・ジオコーダが京都の住所で検出できなかったときのみ「ジオどす」のデータで補完できます。既存のマッシュアップアプリを1行変更するだけ!URLドメインのみ要変更

変更前             http://maps/google.com/maps/geo?・・・・・・・・・・・
変更後 http://api.geodosu.com/{APIキー}/maps/google.com/maps/geo?・・・・・・・・・・・

動作:
本来の動作
before_geodosu

ジオどすを使う場合の動作
after_geodosu
1.一旦受け取ったパラメータをそのままスルーして、グーグルのHTTPジオコードサービスへ転送します。
2.ジオコーディングが成功している場合は、そのままレスポンスをスルーして返します。「ジオどす」では何もしません。
3.グーグルのジオコーダが検出失敗のとき、かつ「京都市」を検出したとき「ジオどす」で検出を試みます。
4.「ジオどす」でも検出に失敗した場合は2で受け取ったグーグルの失敗レスポンスをそのまま返します。
5.「ジオどす」で検出に成功した場合は、Googleの成功時のXML/JSON/KML/CSVのフォーマットをエミュレートして返します。

 

3.Yahoo!ローカルサーチ・プロキシ「ジオ櫛Yどす」
Yahoo!ローカルサーチAPIと全く同じインプット・アウトプット仕様です。京都市の住所かつ「ジオどす」で検出できた場合は、ヤフー・ローカルサーチの結果の先頭アイテムにとして「ジオどす」のデータを挿入します。既存のマッシュアップアプリを1行変更するだけ!URLドメインのみ要変更

変更前            http://map.yahooapis.jp/LocalSearchService/V1/LocalSearch?・・・・・・・・・・・
変更後 http://api.geodosu.com/{APIキー}/map.yahooapis.jp/LocalSearchService/V1/LocalSearch?・・・・・・・・・・・

動作
1.一旦受け取ったパラメータをそのままスルーして、Yahoo!ローカルサーチAPIへ転送します。
2.Yahoo!結果にかかわらず、
キーワード検索、かつ、
検索対象に住所を含む、かつ
キーワードが「京都市」を含む
場合、「ジオどす」で検索
3.「ジオどす」で検索が成功している場合は、ローカルサーチが返す<Item>の先頭アイテムとして結果を挿入します。カテゴリは「address」精度は「5」としています。本来のItemは繰り下げます。引数「n」の個数制限がある場合、本来のレスポンスの最後のアイテムは押し出されて返されない場合があります。

4.「ジオどす」単体での検索。通り名表記で指定可能な予想範囲の矩形エリアも取得できます。単体では京都の通り名以外には一切対応していませんので、他社ジオコーダとの串刺し検索が可能です。ゲストジオコーダには以下の6つから任意の数が選べます。

● 形式
GETまたはPOST

●URI
http://api.geodosu.com/{APIキー}/geodosu?

●APIキー
必須。登録無料です。こちらより登録ください。
(2009年4月3日現在、APIキーは未チェックですが、登録をお願いいたします。)

●パラメータ
address      必須。UTF8形式の住所をURLエンコードしたもの

オプションパラメータ
●searchorde
他のジオコーダーと串刺/順次の検索ができます。その順序を指定します。
使用できるゲストジオコーダーの種類は以下のとおり
(alps、 csis、 gmap、 oki、 yahoo、 cirius、 geodosu)

例:先にジオどす、次にグーグルマップAPIを呼ぶ場合 searchorder=geodosu,gmap
searchorderを指定しない場合は、「ジオどす」のみの検索となります。

● cascade
full 串刺し検索です。searchorderで指定した全ジオコーダを呼び、すべての結果を出力します。一番時間がかかります。
one(default) 串刺し検索ですが、緯度経度が検出できた時点で以後のジオコーダは実行せず、結果は成功した一つだけを出力します。

●datum
wgs84(default) 世界測地系で返します
tokyo 日本測地系で返します

●format
degree(default) 小数点付の度で返します
dms 度/分/小数点付の秒 で返します

●output
xml(default) XMLで返す
json json形式で返す

●callback
output=jsonの時に指定するとJSONP 形式となります。コールバック関数の名前です。

レスポンス仕様
<results>
<result> ・・・・・ゲストジオコーダごとに繰り返す
<geocoder>alps</geocoder>・・・検出できた場合のみ
<copyright>Yahoo株式会社 アルプスラボ Alpslab Base geocoder API
        </copyright>・・・著作権
<geocoded>0</geocoded>・・・・検出結果0:失敗、1:成功
<coordinates>・・・・・・・・・検出した場合のみ
<datum>wgs84</datum>・・・・測地系
<point>・・・・・・・・・・・・検出した緯度経度地点
<lat>35.005650</lat>・・・緯度
<lon>135.764679</lon>・・・経度
<locapoint>SB4.WT5.LO4.AA0</locapoint>・・ロカポによる経緯度表記
</point>
<estrange_sw>・・・・・・・・・可能性エリア南西角
<lat>35.0103495</lat>
<lon>135.761758</lon>
<locapoint>SB4.WU9.VR1.HX5</locapoint>
</estrange_sw>
<estrange_ne>・・・・・・・・・可能性エリア北東角
<lat>35.0115415</lat>
<lon>135.76245</lon>
<locapoint>SB4.WU9.WV4.IG3</locapoint>
</estrange_ne>    
</result>

<result>