【问题标题】:Rails geocoding gemsRails 地理编码宝石
【发布时间】:2010-02-11 02:47:57
【问题描述】:

我过去使用过 GeoKit 和acts_as_geocodable。我喜欢 GeoKit,但它缺少一些更好的功能,比如 named_scopes。我不是acts_as_geocodable 的忠实粉丝,因为它会将地址数据复制到自己的表中。

最近,这些宝石似乎维护不足。

有哪些积极维护的 gem?

【问题讨论】:

    标签: ruby-on-rails geocoding


    【解决方案1】:

    我维护 Geocoder gem:

    http://rubygems.org/gems/geocoder

    源代码:

    http://github.com/alexreisner/geocoder

    我可以告诉你它得到了积极的维护,因为我在写这篇文章时正在研究 Rails 3 的兼容性!它的设计非常简单,同时提供最常用的地理编码功能。它提供命名范围并且不复制任何数据。

    【讨论】:

    • 嘿,看起来不错。我会试一试。只是一个简单的问题:如果街道地址为空白,我该如何规避地理编码? geocoded_by 是否接受 :if 选项?或者我应该在 before_save 中调用 fetch_coordinates 并将条件放在那里?
    • 这可能是未来版本中的默认行为,但现在,是的,将:if 选项添加到before_save
    • 这将是一个不错的功能。感谢您的辛勤工作。
    • 我能够轻松实现它(仅进行地理编码,还没有距离的东西)并且您的代码很好而且干净。再次感谢!
    • 谢谢!很高兴你到目前为止喜欢它。如果您安装插件版本 (script/plugin install http://github.com/alexreisner/geocoder.git),则不需要您的 :if 选项——如果搜索词(地址)为空,它不会查询 Google。这也将在下一个 gem 版本中发布,但不会在几天内发布。
    【解决方案2】:

    地理编码器的插件版本对我来说非常有用。请注意,您必须将“scope”重命名为“named_scope”才能使其在低于 rails 3 的任何环境中工作。

    【讨论】:

      【解决方案3】:

      有一个'geokit-rails3' gem 也可以做地理编码和反向地理编码:

      https://github.com/jlecour/geokit-rails3

      它提供了多种地理编码器,如GoogleGeocoder和YahooGeocoder,因此您可以根据您要渲染的地图选择最合适的一个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多