Der Edelstein GeoKit klingt wie eine gute Passform für das, was Sie tun möchten.
Es abstrahiert die Schnittstellen zu verschiedenen Geocoding-Diensten (Yahoo, Google usw.) und stellt Code für Entfernungsberechnungen zur Verfügung.
Sie können die Postleitzahlen geocodieren, um Standorte abzurufen, Adressinformationen über den Standort abzurufen und die Entfernungen zwischen Ihren Standorten zu berechnen.
Hier ist der Quick-Start, schamlos aus der gelinkten Seite kopiert, nur Sie, wie die Bibliothek Werke eine Idee zu geben:
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"
Perfect, danke! – user227837