【问题标题】:Determining location from Lat/Lng to match second table从 Lat/Lng 确定位置以匹配第二个表
【发布时间】:2012-12-05 11:59:44
【问题描述】:

到目前为止,我已经完成了一些阅读,我正处于十字路口。

我的情况是这样的:

  • 带有半径的 lat/lng 值列表(我们可以将这些值称为“城市”)的表格
  • 包含移动值列表的表格,包括纬度/经度

我的要求是返回移动列表并包括最近的城市(如果它在半径内)。到目前为止,我已经使用 PHP 中的半正弦公式为我返回的每条记录执行此操作,但它并不是特别有效。

我发现的两个选择是:
1/ 在 MySQL 中创建一个存储过程来执行 Haversine 的那一侧(像这样:Proximity Search
2/ 使用“边界框”方法来定位城市而不是圆形。这不是一个大问题,并且可以简化 sql。

但是,在某些情况下,如果 lat 和 lng 为负数,则确定点是否位于左上角和右下角之间的典型逻辑将不起作用。在 PHP 中,为了解决这个问题,我会做一个快速的“如果”,我会检查左上角的 lat/lng 是否大于右下角,并根据结果使用 AND/OR。

【问题讨论】:

    标签: php mysql geolocation


    【解决方案1】:

    经过一些额外阅读后,我在 SO 上发现了这个问题。

    https://stackoverflow.com/a/5548877/1749630

    这个答案正是我需要指出的正确方向。通过这种方式,我现在使用子选择来查找城市。

    如果有人发布了比这个更好的答案,我会标记那个而不是这个:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 2020-08-13
      • 2011-07-23
      相关资源
      最近更新 更多