2014-09-21 159 views
0

我可以檢索用戶的經度和緯度,並因此通過GPS獲取其位置座標。 例如讓我說我有緯度67和經度-25,並且可以說我想限制搜索到100km,它會是+ 20當前緯度和+ - 10當前經度嗎?計算距離範圍

如果您需要澄清,請告訴我。 在此先感謝

+1

這比編程一個數學問題。 – 2014-09-21 21:32:01

+1

將十進制度數座標轉換爲公里並不是恆定的,我建議使用JTS來執行緩衝區操作,或將數據存儲在類似PostGIS的地方,以便將其存儲爲幾何圖形並執行空間查詢......取決於您的目標 – markg 2014-09-21 21:33:23

+0

感謝你的迴應。用戶的緯度和經度信息被直接記錄到Parse中,所以我得到了這些信息。我同意這更像是一個數學問題。 – John 2014-09-21 22:04:38

回答

1

解析使這非常簡單。他們已經建立了稱爲:withinKilometers:withinMiles:withinRadians:的功能。以下查詢參數將返回「位置」在用戶當前位置100公里內的所有行。由於您已經計算了用戶的經度和緯度,因此您可以使用這些值創建PFGeoPoint

斯威夫特語法

let userLocation = PFGeoPoint(latitude: userLatitude, longitude: userLongitude) 
query.whereKey("location", nearGeoPoint:userLocation, withinKilometers: 100) 
+0

感謝您的及時迴應。我相信android的等價物是query.whereWithinKilometers(「location」,ParseGeoPoint point,double maxDistance);對於這一點,我已經設法通過GPS存儲用戶的緯度和經度,所以不知道該點會被引用到什麼位置或「位置」,因爲我的解析沒有列「位置」 – John 2014-09-22 02:52:11

+1

更新我的答案@ user3907211至於你的「位置」列,它是你比較PFGeoPoint的任何列。注意:您不應該將用戶的經度和緯度保存爲Parse。而是保存一個PFGeoPoint。 – Dehli 2014-09-22 03:25:02

+0

謝謝你的迴應。我想知道不會通過解析使用GPS大幅增加請求數量,從而增加費用。假設我有2000個用戶每天平均花費30分鐘的時間,每秒鐘不會超過30個請求,因爲不斷詢問應用程序的當前位置 – John 2014-09-22 04:13:25