【问题标题】:Rails, all zipcodes within distance from zipcodeRails,距离邮政编码范围内的所有邮政编码
【发布时间】:2013-02-03 21:14:56
【问题描述】:

我试图找出:给定一个邮政编码,该邮政编码 X 英里半径内的所有邮政编码是什么。


我找到了一些解决方案,我在下面发布了这些解决方案,但我想知道是否有专门针对 Rails 或 Ruby 的更好解决方案(换句话说,gem、gist 等)。我发现的 Ruby 解决方案已经有几年历史了,所以现在似乎有更好的解决方案可用。

理想情况下,我想要一个只接受字符串“11026”并生成字符串作为输出的东西,而不必创建 AR 模型或过于广泛地处理数据库。

Geocoder 似乎没有明确地这样做......Geokit 也没有。我不知道这两种宝石是否有一个简单的解决方法。


类似的解决方案:

Find all Zipcodes within specified distance of a zipcode

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 zipcode


    【解决方案1】:

    这个 API 让它变得非常简单 - http://www.zipcodeapi.com/API#radiusSql。格式为

    http://www.zipcodeapi.com/rest/<api_key>/radius.<format>/<zip_code>/<distance>/<units>
    

    【讨论】:

    • 免费版每小时只有 10 个请求
    【解决方案2】:

    Sql-wise,有人已经问过类似的问题here。实现起来有点简单,并且会给你足够好的结果来测试你的规范。

    否则,如果您可以找到每个 zip 都有 lat/long 的库,那么从地理邻近度的角度来看就很容易了。然后,您应该寻找 Postgresql 邻近搜索。 了解更多:http://www.boutell.com/zipcodes/http://www.geopostcodes.com/

    【讨论】:

    • 第一个链接的问题在于它并没有真正使用任何类型的数据库,它只是与 zip 的第一个字符匹配......这不是一个很好的匹配器。其他链接似乎也只是邮政编码数据库?
    • 我正在寻找返回最接近某个邮政编码的邮政编码的东西。希望一些不依赖外部服务的东西(比如地理编码器)。也许如果 zip 存储在具有 lat/long 的数据库中,然后有一些方法可以查看所有具有附近 lat/long 的邮政编码。
    • 免费邮政编码经纬度数据库,有了邮政编码,您就可以得到坐标。有了坐标,您就可以进行地理接近。具有相同半径的地理点,您可以使其返回对象的邮政编码。我认为您在第二条评论中掌握了要点。 boutell.com/zipcodes 似乎是您想要的数据库。我会试一试。
    • 好吧,看起来不错。我想我在阅读您的答案时跳过了有关 PG 邻近搜索的部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多