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