【问题标题】:How to Query Mysql based on GPS latitude and longitude columns based on relative distance如何根据相对距离根据GPS经纬度列查询Mysql
【发布时间】:2011-09-12 16:53:02
【问题描述】:

在我正在构建的应用中,我希望用户能够轻松发现周围的人的功能之一。我正在使用 GPS 获取纬度和经度,然后将该信息与其他用户信息一起存储在 mysql 数据库中,该用户信息位于纬度列和经度列下。最佳做法是进行查询,查看查询信息的人......然后让它找到最接近的相关纬度和经度,然后从那里开始并将其限制为 24 个结果?此外,我将如何记住它停止的位置,以便我可以允许另一个查询从它停止的地方开始并返回越来越远的地方

基本上,概括地说,我怎样才能执行一个 mysql 查询,该查询尽可能接近我提供的 2 个纬度和经度点,然后让它抓取接下来的 24 个按最接近到最远排序的点?

我觉得它很难做到,因为它基于 2 列。有没有办法我应该/可以将 GPS 值合并到 1 列中,以便轻松找到相对距离?

也许我能以某种方式获得邮政编码(但这可能会导致非美国问题)。我不知道。我被卡住了。

【问题讨论】:

    标签: php mysql database gps latitude-longitude


    【解决方案1】:

    只需在 Stackoverflow 上搜索“Haversine Formula”,您就会发现几个相关问题。

    【讨论】:

      【解决方案2】:

      正如@cdonner 提到的,Haversine 公式有许多资源,您可以使用这些资源将纬度和经度转换为距离。您将根据公式的设置方式传递距离变量,通常基于英里,并从最近的半径开始运行查询。使用 php 循环,您可以简单地增加距离并重新运行查询,直到获得所需数量的结果。并且一定要检查一下谷歌链接@Maleck13,非常有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-25
        相关资源
        最近更新 更多