【问题标题】:How to find GPS-coordinates within a bounding circle如何在边界圆内找到 GPS 坐标
【发布时间】:2011-11-10 17:47:04
【问题描述】:

我有一系列十进制点格式的 GPS 坐标,乘以 1.000.000。例如,51.1 的纬度和4.1 的经度将被保存为Y 51100000X 4100000。这些坐标保存在 SQlite 3 数据库中。

使用 Ruby 1.9.2 和 Rails 3.0.8,我需要能够获取某个中心点某个半径内的所有记录。例如,给定纬度51 和经度4 的中心点,我需要找到10 公里半径内的所有记录。

这篇文章很好地解释了如何执行查询来获取这些记录,但 SQlite 似乎不支持使用的数学函数:http://www.movable-type.co.uk/scripts/latlong-db.html

有没有其他方法可以从数据库中检索到不涉及遍历整个表的正确记录?

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby sqlite gps


    【解决方案1】:

    除非您必须使用 SQLite,否则请尝试使用 Sphinx:

    我会将 GPS 坐标转换为 lat/lng 坐标,然后使用 Sphinx(有 gem thinking-sphinx for rails:http://freelancing-god.github.com/ts/en/)。使用 Sphinx,您可以使用 Sphinx 的功能在给定圆圈内搜索点:@geodist

    您将在此处看到如何做到这一点的精彩示例:http://joeyschoblaska.com/blog_posts/220-thinking-sphinx-searching-by-location-and-keyword

    【讨论】:

    • 谢谢,成功了!我确实暂时无法使用 SQLite。虽然这在未来的某个时候可能会改变,但我现在需要让它运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多