GeoKit plugin で住所=>緯度変換を行う
趣旨
緯度経度がらみの面倒を見てくれる GeoKit が熱い。
http://earthcode.com/blog/2007/02/geokit_map_plugin.html
GeoKit は多機能だが、今回は住所=>緯度変換を行うことに的を絞る。
試した環境
Rails 1.2.3
インストール
Google Maps キーはあらかじめ Google から取得しておく。
http://www.google.com/apis/maps/signup.html
プラグインインストール。
% cd my_rails_app % ruby script/plugin install svn://rubyforge.org/var/svn/geokit/trunk
インストーラは config/environment.rb の末尾にいろいろ設定文を追加してうざい。次の2つを除いて消した。
GeoKit::Geocoders::GOOGLE='my google maps key' GeoKit::Geocoders::PROVIDER_ORDER=[:google]
使い方
location=GeoKit::Geocoders::GoogleGeocoder.geocode('100 Spear st, San Francisco, CA') if location.success puts location.lat, location.lng end
とするだけ。鬼のように簡単。日本の住所もきちんと通る。(UTF-8で指定)
script/console で試してみるといいかも。
% cd my_rails_app % ruby script/console Loading development environment. >> include GeoKit::Geocoders => Object >> res=GoogleGeocoder.geocode('100 Spear st, San Francisco, CA') => #<GeoKit::GeoLoc:0x40f8d500 @country_code="US", @street_address="100 Spear St", @full_address="100 Spear St, San Francisco, CA 94105, USA", @zip="94105", @state="CA", @provider="google", @lng=-122.393985, @precision="address", @success=true, @city="San Francisco", @lat=37.792501> >> puts res.ll # ll=latitude,longitude 37.792501,-122.393985 => nil