Ho bisogno di trovare la città e lo stato da un codice di avviamento postale. Qualcuno sa un buon plugin/API che posso usare per fare questo?Plugin codice postale migliore per Ruby
risposta
gem install geokit
In IRB:
require 'geokit'
geo = GeoKit::Geocoders::MultiGeocoder.multi_geocoder('90210')
if geo.success
geo.state # => CA
geo.city # => Beverly Hills
end
Vedere la risposta di Jason. Funziona bene.
Il problema è che USPS non consente il download in blocco dei propri elenchi di codici di avviamento postale a meno che non si paghi per esso. API di Google, che viene utilizzato nella gemma di cui parla Splashlin, non sembra più per sostenere la città e lo stato, invece ora restituisce il prefisso:
require 'open-uri'
require 'json'
json = JSON::parse(open('http://maps.google.com/maps/geo?q=852581').read)
puts json
# >> {"name"=>"852581", "Status"=>{"code"=>602, "request"=>"geocode"}}
Questa pagina mostra un certo senso si potrebbe rotolare il proprio. Le fonti dei dati potrebbero non essere attuali però:
Un'opzione più leggero è il Area gem.
require 'area'
'11211'.to_region #=> "Brooklyn, NY"
ha appena implementato l'area, e devo dire che è davvero fantastico! molto sentimento verso l'api che il geokit. –
Se l'area copre le tue esigenze di geocodifica, è davvero una bella gemma. – theIntuitionist
Heh. Una libreria che modifica una classe principale come String non è qualcosa che definirei "leggera". – Dogweather
La cattura più eccellente! Ho dimenticato geokit. –
https://github.com/geokit/geokit – scarver2