我正在開發一個位置跟蹤應用程序,我正試圖找出我的朋友在我當前位置1000 mtr範圍內的位置。做這個的最好方式是什麼?如何查找距某點X距離的經度和緯度?
我能想到的一種方法是計算我的位置和所有朋友的位置之間的距離,看它是否小於1000 mtr。但是這需要更多的時間去瀏覽數據庫中的每個條目並計算每個條目,其中大部分可能來自非常遠的地方。
我也在想別的東西。我想要在一個圓形區域內的位置。如果我能得到包圍圓的正方形的座標,我可以將我的結果集過濾爲只在該平方中的座標(在一定程度的經度和緯度之間),然後我可以計算出每個條目的距離。我該怎麼做呢? 如何獲得最大的經緯度?也將我的SQL查詢中就像分鐘<(each.location.degree)<最大
讓我知道是否有任何更好的選擇。我不擔心極端的準確性,但性能。我使用WP8,所以座標格式爲緯度:47.626,長度:-121.989。
你能分享一些資源,在那裏我能理解這個公式背後的邏輯是什麼? –
http://www.plumislandmedia.net/mysql/haversine-mysql-nearest-loc/解釋了相當簡單的mysql邏輯。對於公式,請訪問http://en.wikipedia.org/wiki/Haversine_formula –
僅供參考,對於多種語言,如果dist小於111並且是int,則必須將dist分爲111.0,而不是你的dist作爲float來確保輸出是浮動的,否則,dist/111可能會以0(int)形式出現。 – lmc