2010-10-14 39 views

Trả lời

19
gem install geokit 

Trong IRB:

require 'geokit' 
geo = GeoKit::Geocoders::MultiGeocoder.multi_geocoder('90210') 
if geo.success 
    geo.state # => CA 
    geo.city # => Beverly Hills 
end 
+0

Bắt tuyệt vời nhất! Tôi quên về geokit. –

+1

https://github.com/geokit/geokit – scarver2

0

Xem câu trả lời của Jason. Nó hoạt động độc đáo.


Vấn đề là USPS không cho phép tải xuống hàng loạt danh sách mã zip của chúng trừ khi bạn thanh toán. API của Google, được sử dụng trong các đá quý được đề cập bởi Splashlin, không còn dường như ủng hộ thành phố và tiểu bang, thay vì nó bây giờ trả về mã vùng:

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"}} 

Trang này cho thấy một số cách bạn có thể cuộn của riêng bạn. Các nguồn dữ liệu có thể không phải hiện tại mặc dù:

http://www.ruby-forum.com/topic/48815

7

Một lựa chọn trọng lượng nhẹ hơn là Area gem.

require 'area' 

'11211'.to_region #=> "Brooklyn, NY" 
+2

chỉ là khu vực được triển khai và phải nói - nó khá tuyệt vời! nhiều cảm giác api hơn geokit. –

+1

Nếu khu vực bao gồm nhu cầu mã hóa địa lý của bạn, nó thực sự là một viên ngọc đẹp. – theIntuitionist

+0

Heh. Một thư viện mà sửa đổi một lớp cốt lõi như String không phải là cái gì tôi muốn gọi là "nhẹ". – Dogweather

Các vấn đề liên quan