OpenStreetMapでジオコーディング
Google Map APIを利用せずにOpenStreetMapでジオコーディング する方法を調査中です。
とりあえず調査の経過を書いておきます。
OpenStreetMapでジオコーディング を利用しようとすると、Nominatimと言うツールがあげられます。
Nominatim解説サイト
http://wiki.openstreetmap.org/wiki/JA:Nominatim
しかし、残念ながらNominatimは日本語のジオコーディングはまだまだのようです。(この記事を書いている、2014年4月3日現在)
弊社の住所は
神奈川県横浜市神奈川区鶴屋町2-21-1 ダイヤビル5F
ですが、
たとえば横浜市神奈川区までは成功します。
http://nominatim.openstreetmap.org/search/%E7%A5%9E%E5%A5%88%E5%B7%9D%E5%8C%BA%20%E6%A8%AA%E6%B5%9C%E5%B8%82?format=xml&polygon=0&addressdetails=1
xmlで帰ってくる結果です。
しかし、鶴屋町まで入れると結果は帰ってきません。
http://nominatim.openstreetmap.org/search/%E9%B6%B4%E5%B1%8B%E7%94%BA%20%E7%A5%9E%E5%A5%88%E5%B7%9D%E5%8C%BA%20%E6%A8%AA%E6%B5%9C%E5%B8%82?format=xml&polygon=0&addressdetails=1
上の問い合わせのxmlで帰ってくる結果です。
ふぇぇ…
東京や熊本市などの住所で調べてみても、まだまだ市区レベルでしか結果が帰ってこないようです。
リバースジオコーディング
Nominatimはリバースジオコーディングの方はもう少しイケています。
下記はみなとみらいの緯度経度ですが
上の問い合わせのxmlで帰ってくる結果です。
リバースジオコーディングできています。
弊社の住所の緯度経度ですが
http://nominatim.openstreetmap.org/reverse?format=xml&lat=35.4693&lon=139.624557&zoom=18&addressdetails=1
上の問い合わせのxmlで帰ってくる結果です。
ま、こんなもんか。
ところでmapquestでもNominatimを利用してジオコーディングできるらしいというのでやってみたかったのですが、Get Mapquest App KeyというボタンをクリックしてもLoadingがひたすらグルグル回るだけで、登録できません。残念。
https://developer.mapquest.com/web/products/open/geocoding-service
WebAPIを利用しなくっても、ジオコーディングのデータをサーバーにストックしておいて、それを自前で検索する…というのもできそうです。
Planet.osm
http://wiki.openstreetmap.org/wiki/Planet.osm
しかし、ヨーロッパやアメリカ・カナダが主流なのか?
日本のデータは?
というと、なんと日本のジオコーディングのデータを国土交通省が配布してくれています。
位置参照情報ダウンロードサービス
http://nlftp.mlit.go.jp/isj/
いい国だな、ニッポン!⊂(^-^)⊃
これをサーバーにダウンロードして、ジオコーディングを自前で作ることができますね!
下記のサイト様を大変参考にさせて頂きました。m(_ _)m
しかし、差分のメンテナンスとか考えると、やっぱりどっかオープンソースのWeb APIで、パラメーターをURLで投げるとxmlかjsonで帰ってくる方が楽ですよね(^_^;
Nominatimでぜひ日本のデータを取れるようになる日が一日も早く来るように願っています!