到目前为止,我已经完成了一些阅读,并且处于十字路口。从Lat/Lng确定位置以匹配第二张表
我的情况是这样的:
- 表与纬度/经度值的列表(我们可以把这些被“城市”)的,半径
- 表与运动值的列表,其中包括一个经纬度
我的要求是,我返回的动作列表,并包括最近的城市(如果它在半径范围内)。到目前为止,我在PHP中使用了hasrsine公式来为我返回的每个记录执行此操作,但效率并不高。我发现
我的两个选择要么是:
1 /在MySQL中创建一个存储过程来完成的半正矢那面(这样的事情:Proximity Search)
2 /使用的“边界框”的方法定位城市而不是一个圆圈。这不是一个大问题,可以让sql得到简化。
但是,在某些情况下,如果lat和lng处于负值,则确定点位于左上角和右下角之间的典型逻辑将不起作用。在PHP中,为了解决这个问题,我会做一个快速的“if”来检查左上角lat/lng是否大于右下角,并根据结果使用AND/OR。