【问题标题】:How can I search mysql based on distance如何根据距离搜索mysql
【发布时间】:2014-02-25 18:25:04
【问题描述】:

我有一个地址表“街道”、“城市”、“州”和“邮编”。

我可以使用 google maps API 拉出完整地址的网格,haversine 公式就足够了,但我如何根据它进行搜索?

示例。假设有人搜索“纽约市”,我该如何搜索最接近该纬度/经度的地址?我知道我需要将其转换为纬度/经度。

我是否应该添加另一个字段,以便以纬度/经度存储地址?如果是这样,我该怎么做才能根据距离进行搜索?

【问题讨论】:

  • 如果您有origin lat/long,您可以使用数学来确定范围内其他lat/long 坐标的半径。然后只需在数据库中查询具有 lat/long 在 min/max 值内的记录。
  • 视情况而定。你想要行驶距离还是直线距离?线性距离,按照@BotskoNet 所说的去做,否则,您可能必须使用 google maps api 并在 PHP 脚本中计算出来,将每个 ID 和 Distance 存储在一个数组中,然后获取最接近的 X 个位置起点。

标签: php mysql distance latitude-longitude haversine


【解决方案1】:

我实际上在这里找到了我想要的东西。我花了一段时间,因为我没有寻找正确的术语,但我想通了。 MySQL Great Circle Distance (Haversine formula)

这就是我想要的。我希望这对其他人有帮助!

【讨论】:

    猜你喜欢
    • 2016-10-12
    • 2011-08-26
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多