La gemma GeoKit suona come una buona idea per quello che ti piacerebbe fare.
Assorbe le interfacce a vari servizi di geocodifica (Yahoo, Google, ecc.) E fornisce il codice per i calcoli della distanza.
È possibile eseguire il geocoding delle cerniere per ottenere posizioni, accedere alle informazioni sugli indirizzi relative alla posizione e calcolare le distanze tra le posizioni.
Ecco il rapido avvio, senza vergogna copiato dalla pagina collegata, giusto per dare un'idea di come funziona la biblioteca:
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"
fonte
2009-12-09 22:47:33
Perfetto, grazie! – user227837