2013-10-04 80 views
0

我想開發一個基於位置的應用程序。如何獲得最近的位置給定的緯度和經度?

要求:用戶插入數據(lat-long)並將其存儲在SQLite中。當用戶到達該位置時,他/她將得到警報。我想定義靠近這個位置的一些區域(例如1公里)。 如果用戶在這個位置的1公里範圍內,他/她會得到警報。

我知道如何使用位置監聽器,但沒有想法來修復這個圈的區域。我看着this,但不知道如何使用它。

有人可以建議我嗎?謝謝

+4

這是由Play Services SDK中的geofencing API處理的:http://developer.android.com/google/play-services/location.html – CommonsWare

+0

有沒有任何示例如何使用它? –

+0

它包含在文檔中:http://developer.android.com/training/location/geofencing.html – CommonsWare

回答

0

什麼是如此困難?

要知道當前點是否在任何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成一個大陣。

相關問題