2010-04-13 106 views
0

我有一個座標。我想從MySQL數據庫中存儲的幾千行中找到最接近的座標「n」(n是一個變量值)。我也希望能夠定義所討論的座標和數據庫中的座標之間的最大和最小距離。查找頂部「n」附近的座標

我如何最好地去做這件事?因爲我比MySQL理解語法要好得多,所以會使用PHP嗎?

如果我使用MySQL函數,如果我選擇切換服務器,如何在數據庫之間移動它?它如何存儲?

最後,通過所有這些座標的最有效方法準確 - 座標都相對接近彼此?

感謝您的時間,

約翰。

+1

這種聯繫是有益的我: http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL 而且,另一個計算器問題: http://stackoverflow.com/questions/574691/mysql -great-circle-distance-haversine-formula – Billiam 2010-04-13 19:39:05

+0

此問題已解決(甚至在本網站上)。請參閱@ Billiam的評論。我可以給出的唯一建議是儘量避免通過緩存「熱門區域」或其他東西來敲擊數據庫。這將爲您提供最有效的解決方案。 – aduric 2010-04-13 20:01:32

+0

我在我的手很短的時間前有一個類似的問題:一個完整​​的位置表,並給予一個位置X(最常見的是用戶的位置),我想知道什麼是從我的表的N個最接近的位置,也許過濾通過其他標準在同一時間。我意識到,這將是非常糟糕的,以保持查詢數據庫,並認爲這將是太多緩存每一個查詢,所以我剛剛結束了做類似計算的根據來自距離X位置有序列表,(MEM)緩存一段時間並在其上應用附加的顯示過濾器。 – 2010-04-13 20:57:56

回答

0

這會在PHP中做到這一點,而不是farm this off to MySQL。如果你堅持雙精度浮點數,那麼你應該比提供的精度更高的精度(即民用GPS精確到最好約5M,但你的計算會給幾釐米的精度)