2012-12-05 16 views
0

到目前为止,我已经完成了一些阅读,并且处于十字路口。从Lat/Lng确定位置以匹配第二张表

我的情况是这样的:

  • 表与纬度/经度值的列表(我们可以把这些被“城市”)的,半径
  • 表与运动值的列表,其中包括一个经纬度

我的要求是,我返回的动作列表,并包括最近的城市(如果它在半径范围内)。到目前为止,我在PHP中使用了hasrsine公式来为我返回的每个记录执行此操作,但效率并不高。我发现

我的两个选择要么是:
1 /在MySQL中创建一个存储过程来完成的半正矢那面(这样的事情:Proximity Search
2 /使用的“边界框”的方法定位城市而不是一个圆圈。这不是一个大问题,可以让sql得到简化。

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

回答

0

经过一番额外的阅读后,我在这里发现了这个问题。

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

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

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

相关问题