0
我想開發一個基於位置的應用程序。如何獲得最近的位置給定的緯度和經度?
要求:用戶插入數據(lat-long)並將其存儲在SQLite中。當用戶到達該位置時,他/她將得到警報。我想定義靠近這個位置的一些區域(例如1公里)。 如果用戶在這個位置的1公里範圍內,他/她會得到警報。
我知道如何使用位置監聽器,但沒有想法來修復這個圈的區域。我看着this,但不知道如何使用它。
有人可以建議我嗎?謝謝
我想開發一個基於位置的應用程序。如何獲得最近的位置給定的緯度和經度?
要求:用戶插入數據(lat-long)並將其存儲在SQLite中。當用戶到達該位置時,他/她將得到警報。我想定義靠近這個位置的一些區域(例如1公里)。 如果用戶在這個位置的1公里範圍內,他/她會得到警報。
我知道如何使用位置監聽器,但沒有想法來修復這個圈的區域。我看着this,但不知道如何使用它。
有人可以建議我嗎?謝謝
什麼是如此困難?
要知道當前點是否在任何1km半徑內?
如果到中心的距離小於半徑,則點在圓內!
所以,只需使用CLLocation的distanceTo方法,並檢查是< 1000. 對所有點都這樣做。
for (int i = 0; i < numpoints; i++) {
dist = currentLocation.distanceTo(point[i].latitude, point[i].longitude);
if (dist < 1000) {
// found: signal point reached
}
}
除非你有百個thsousands點的這種方法的工作原理, 負載都指向了主memeroy成一個大陣。
這是由Play Services SDK中的geofencing API處理的:http://developer.android.com/google/play-services/location.html – CommonsWare
有沒有任何示例如何使用它? –
它包含在文檔中:http://developer.android.com/training/location/geofencing.html – CommonsWare