Muszę znaleźć miasto i województwo z kodu pocztowego. Czy ktoś zna dobrą wtyczkę/API, które mogę użyć, aby to zrobić?Najlepsza wtyczka kodu pocztowego dla Ruby
Odpowiedz
gem install geokit
W IRB:
require 'geokit'
geo = GeoKit::Geocoders::MultiGeocoder.multi_geocoder('90210')
if geo.success
geo.state # => CA
geo.city # => Beverly Hills
end
Zobacz odpowiedź Jasona. Działa ładnie.
Problem polega na tym, że USPS nie zezwala na zbiorcze pobieranie swoich list zip-code, chyba że za nie zapłacisz. Google API, które jest używane w gem wymienione przez Splashlin, wydaje się nie wspierać miasto i stan, zamiast teraz zwraca numer kierunkowy:
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"}}
Ta strona pokazuje kilka sposobów można przewróceniu własne. Źródłem danych może nie być aktualna mimo:
Bardziej lekka opcja jest Area gem.
require 'area'
'11211'.to_region #=> "Brooklyn, NY"
właśnie zaimplementowany obszar, i muszę powiedzieć - jego ładny awesome! wiele uczuć dla APi niż geokitów. –
Jeśli obszar obejmuje twoje potrzeby geokodowania, jest to naprawdę niezły klejnot. – theIntuitionist
Heh. Biblioteka, która modyfikuje klasę podstawową, taką jak String, nie jest czymś, co nazwałbym "lekką". – Dogweather
Najwygodniejszy połów! Zapomniałem o geokicie. –
https://github.com/geokit/geokit – scarver2