我需要从邮政编码找到城市和状态。有人知道我可以用来这样做的好插件/API吗?

有帮助吗?

解决方案

gem install geokit

在IRB中:

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

其他提示

一个更轻巧的选择是 区域宝石.

require 'area'

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

见杰森的答案。它效果很好。


问题在于,除非您付费,否则USPS不允许大量下载其邮政编码列表。 Google的API(在Splashlin提到的GEM中使用)似乎不再支持城市和州,而是现在返回区域代码:

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

此页面显示了您可以滚动的一些方法。数据的来源可能不是当前的:

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top