2013-01-17 63 views
17

進入我開發Android應用程序時,用戶通過使用經緯度(即谷歌地圖)
在特定位置進入
用戶可以指定位置,這給通知獲取通知我知道怎麼弄緯度&經度,但我的問題是,當用戶在特定位置輸入時,它將不會與先前指定的緯度經度&完全匹配。 enter image description here安卓:當用戶在特定位置

如圖所示假設用戶在用戶輸入區域(約20米)時指定名爲「我的地點」的位置,則應用程序應向用戶發送通知。
我想知道如何比較緯度&哪個用戶指定的經度(我的地方)和當前緯度&哪個應用程序通過GPS獲取的經度。 這樣做的比較,如果用戶在20米左右的地方附近的話,是正確的。 (這20米是近似值。) 我可以在android中設置精確度,例如: 20米。
謝謝。

回答

16

解決此問題的最佳方法是使用GeoFences功能。請參閱https://developer.android.com/training/location/geofencing.html瞭解更多詳情。

提綱: - 應用程序向基礎操作系統註冊 - 說 - 這裏是我希望您監視的地理圍欄列表(位置特定位置+半徑)。 - 如果我的用戶進入這個地理圍欄 - 喚醒我並告訴我。 - 在這個時間點 - 您可以繼續並執行任何步驟(調用服務器並詢問需要向用戶顯示哪些信息),或發送推送通知(在應用程序通知中)以完成必要的工作。

希望這會有所幫助。

+0

當GPS關閉時這是否工作? – chinmish

6

查看LocationManager.addProximityAlert函數。它幾乎完全符合你的要求。警告,它確實使用了大量的電池。

+0

有沒有更好的解決方案,需要更少的電池電量? 謝謝... –

+1

不是。基本上,你需要做它做的事情 - 檢查每次GPS位置更新時,通過在你的位置和目標之間進行距離檢查來查看你是否在範圍內。使用電源是因爲在執行此操作時您需要持續開啓GPS。只需確保在不需要它時刪除警報。 –

+0

所以你說使用addProximityAlert()的Instendof我應該應該用lat來檢查距離。和lon。具體位置和當前位置。我是否正確或其他任何東西? –

1

可以使GPS池具有空間距離函數計算

有從Bluedotinnovation具有從雷達更精確和更少電池消耗也類似自由SDK

雷達地理圍欄是點SDK(機器人& IOS)比原生iOS或Android geofencing更強大,跨平臺支持無限地理圍欄,多邊形地理圍欄,停止檢測以及低至30米的精度。

他們也有ReactNative支持。