From: Eric Hodel Date: 2006-06-14T06:55:32+09:00 Subject: [ANN] Geocoding Goodness I've implemented ruby bindings for the three major geocoding APIs as gems: Yahoo! -- yahoo-geocode Google -- google-geocode geocoder.us -- geocoder-us And as a bonus, you get a Yahoo! search gem to search either the web or for locations, yahoo-search. The bindings all have similar APIs, but return different objects depending upon what information the API reliably provides. Yahoo! gives the most information, followed by Google, followed by geocoder.us. Yahoo!: http://dev.robotcoop.com/Libraries/yahoo-geocode/index.html require 'rubygems' require 'yahoo/geocode' yg = Yahoo::Geocode.new application_id locations = yg.locate '701 First Street, Sunnyvale, CA' p location.first.coordinates (and searching for locations) http://dev.robotcoop.com/Libraries/yahoo-search/index.html require 'rubygems' require 'yahoo/local_search' yls = Yahoo::LocalSearch.new application_id results, = yls.locate 'pizza', 94306, 2 results.each do |location| puts "#{location.title} at #{location.address}, #{location.city}" end Google: http://dev.robotcoop.com/Libraries/google-geocode/index.html require 'rubygems' require 'google_geocode' gg = GoogleGeocode.new application_id location = gg.locate '1600 Amphitheater Pkwy, Mountain View, CA' p location.coordinates geocoder.us: http://dev.robotcoop.com/Libraries/geocoder-us/index.html require 'rubygems' require 'geocoder_us' gu = GeocoderUs.new 'username', 'password' p gu.locate('1924 E Denny Way, Seattle, WA') -- Eric Hodel - drbrain@segment7.net - http://blog.segment7.net This implementation is HODEL-HASH-9600 compliant http://trackmap.robotcoop.com