我應該探索哪些算法來實現一項功能,該功能可以讓用戶找到位於他附近的其他用戶,所有用戶的緯度和經度都是事先知道的,並且是固定的[不動態]。 此外,我相信應該有一個更好的方式來存儲這些數據,然後簡單地存儲用戶對數據庫中的lat,long的用戶ID。有效的方法來處理這個問題是什麼?尋找其他用戶附近的用戶
0
A
回答
1
MySQL(及其他)現在支持spatial indexing.
如果你的數據庫可以做spatial queries你不需要實現算法自己的任何部分。
1
使用k-D樹作爲nearest neighbor search。
1
2
如果您只是發現接近點,您所需要的只是一個簡單的圓形邊界半徑,您可以調整或偏向中心對數座標。當然,您應該避免在每個查詢的整個數據集上執行此操作。一般來說,除了緯度/經度,你可以將地圖分解成象限,你知道你可以忽略蝙蝠。 - 只要確定您的興趣領域是否處於邊緣位置,還可以查詢相鄰象限。這是一個鏈接表,只提取該象限中的行。
一旦你減小了象限。使用最基本的幾何:
1)用一個簡單的邊界框消除大部分數據。
僞代碼:
DistanceLat = abs(P2lat - P1lat);
DistanceLon = abs(P2lon - P1lat)
2)不要勾股定理,看是否點落在withing半徑。在簡化數據集內(a2 + b2 = c2)
Distance = Sqrt(DistanceLat * DistanceLat + DisanceLon * DistanceLon)
if (Distance < radius) keep the data
+0
是的,這更類似於物理模擬中經常使用的OBB樹。最近的一點是更進一步。 – FlavorScape 2012-03-22 17:37:34
相關問題
- 1. jquery mobile讓用戶找到附近的其他用戶
- 2. 如何尋找用戶在facebook位置附近的朋友API
- 3. 尋找附近的地點
- 4. 向Google用戶附加其他信息
- 5. 如何找到解決應用的用戶所在地附近的用戶
- 6. iOS:檢測附近的應用用戶
- 7. System.Data.SqlClient.SqlException:關鍵字 '用戶' 附近有語法錯誤:附近關鍵字 '用戶'
- 8. 快速找到附近的用戶使用的PostGIS
- 9. 如何使用Parse查找當前用戶位置附近的用戶?
- 10. 如何在android中查找附近的應用用戶?
- 11. 爲django查詢集中的用戶尋找最近的評分
- 12. bing地圖,尋找附近的地方
- 13. 尋找附近的位置或地標
- 14. 與其他用戶的用戶關係
- 15. iOS - 允許所有用戶查找他們附近的地圖引腳
- 16. android:在android地圖上顯示用戶當前位置和當前位置附近的其他用戶
- 17. 查找您的位置附近的用戶
- 18. 使用近$查詢獲取流星附近的用戶
- 19. 尋找用戶靠近你,而你和其他人的座標可以自由改變
- 20. 在iOS設備附近尋找
- 21. 用戶如何報告其他用戶?
- 22. 用戶擁有/管理其他用戶
- 23. 如何與附近的用戶共享數據使用附近的谷歌
- 24. 在用戶附近展示場地時
- 25. 獲取附近用戶android with firebase
- 26. 其他用戶帳戶的Rails link_to
- 27. 對其他用戶的表
- 28. 將用戶數據存儲在用戶附近
- 29. 尋找WCF客戶端包裝(代理到其他服務器)
- 30. 用Devise + Active Admin + Switch登錄其他用戶的帳戶用戶
您不需要最近的鄰居。這在計算上是昂貴的,並且只會在已經執行最佳點減少的情況下使用。 – FlavorScape 2012-03-22 17:25:12