2012-12-05 20 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

這個答案正是我需要什麼,我指出正確的方向。通過這種方式,我現在使用子選擇來找到城市。

如果有人發佈一個比這更好的答案我會標記,而不是這一個:)

相關問題