我需要从邮政编码中找到城市和州。有谁知道我可以用来做这个的好插件/API?
问问题
4846 次
3 回答
19
gem install geokit
在 IRB 中:
require 'geokit'
geo = GeoKit::Geocoders::MultiGeocoder.multi_geocoder('90210')
if geo.success
geo.state # => CA
geo.city # => Beverly Hills
end
于 2010-10-14T20:00:04.773 回答
7
一个更轻量级的选项是Area gem。
require 'area'
'11211'.to_region #=> "Brooklyn, NY"
于 2012-06-28T00:49:10.990 回答
0
见杰森的回答。它工作得很好。
问题是 USPS 不允许批量下载他们的邮政编码列表,除非您付费。Splashlin 提到的 gem 中使用的 Google 的 API 似乎不再支持城市和州,而是现在返回区号:
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"}}
此页面显示了一些您可以自己滚动的方法。数据来源可能不是最新的:
于 2010-10-14T19:51:03.107 回答