到目前爲止,我已經完成了一些閱讀,並且處於十字路口。從Lat/Lng確定位置以匹配第二張表
我的情況是這樣的:
- 表與緯度/經度值的列表(我們可以把這些被「城市」)的,半徑
- 表與運動值的列表,其中包括一個經緯度
我的要求是,我返回的動作列表,幷包括最近的城市(如果它在半徑範圍內)。到目前爲止,我在PHP中使用了hasrsine公式來爲我返回的每個記錄執行此操作,但效率並不高。我發現
我的兩個選擇要麼是:
1 /在MySQL中創建一個存儲過程來完成的半正矢那面(這樣的事情:Proximity Search)
2 /使用的「邊界框」的方法定位城市而不是一個圓圈。這不是一個大問題,可以讓sql得到簡化。
但是,在某些情況下,如果lat和lng處於負值,則確定點位於左上角和右下角之間的典型邏輯將不起作用。在PHP中,爲了解決這個問題,我會做一個快速的「if」來檢查左上角lat/lng是否大於右下角,並根據結果使用AND/OR。