Le gemme GeoKit semble être un bon choix pour ce que vous aimeriez faire.
Il extrait les interfaces vers divers services de géocodage (Yahoo, Google, etc.) et fournit un code pour les calculs de distance.
Vous pouvez géocoder les zips pour obtenir des emplacements, accéder aux informations d'adresse relatives à l'emplacement et calculer les distances entre vos emplacements.
Voici le démarrage rapide, sans vergogne copié à partir de la page liée, juste pour vous donner une idée de la façon dont fonctionne la bibliothèque:
irb> require 'rubygems'
irb> require 'geokit'
irb> a=Geokit::Geocoders::YahooGeocoder.geocode '140 Market St, San Francisco, CA'
irb> a.ll
=> 37.79363,-122.396116
irb> b=Geokit::Geocoders::YahooGeocoder.geocode '789 Geary St, San Francisco, CA'
irb> b.ll
=> 37.786217,-122.41619
irb> a.distance_to(b)
=> 1.21120007413626
irb> a.heading_to(b)
=> 244.959832435678
irb(main):006:0> c=a.midpoint_to(b) # what's halfway from a to b?
irb> c.ll
=> "37.7899239257175,-122.406153503469"
irb(main):008:0> d=c.endpoint(90,10) # what's 10 miles to the east of c?
irb> d.ll
=> "37.7897825005142,-122.223214776155"
parfait, merci! – user227837