2012-12-24 22 views
0

我不認爲有可能實際使用LocationProvider,但我想我會看看是否有人有任何想法。Android Map API 2.0 - myLocation改變了嗎?

基本上我有具有瀏覽量瓦特/它包含一個新的MapView 2.0

我可以很容易地通過GoogleMap對象getMyLocation的方式拉我的位置片段的應用程序。

我曾在過去的問題;在某些設備上,同時使用兩個NetworkLocation & GpsLocation提供程序。由於我可以從GoogleMap中取得我的位置,因此我可以通過一種簡單的方法來檢查我的位置。

我唯一的問題是,我可以看在地圖平移更新通過處理onCameraChanged地圖上,但它不處理的位置在地圖內改變。

我目前的實現是,我有一個MapView和LocationProvider。該位置提供者是在服務,並設置基於用戶確定的時間來更新(1,5,10,15,30,60秒) 。這些活動通過AIDL連接到服務,如果存在> 0連接的活動,則啓用locationProvider,如果沒有,它將關閉。儘管如此,這對谷歌地圖確實沒什麼影響,但如果我們不像谷歌地圖那樣處理GPS信號丟失,我們得到的位置與Google地圖不同。

我的第一個3選項: 得到一個提供者,並通過那個我可以得到一個位置變化的回調(並不真的想這樣做)。這包括通過LocationSource ..

第二個選項 獲取當前位置提供程序,我在當前服務中使用,並且每次更新時,只需從地圖中獲取位置即可。我想這會工作,但似乎有點多餘,並仍然有管理LocationProviders當屏幕關閉等問題。(不必這樣做谷歌地圖)

另一種選擇將是有一個服務將地圖對象的接口傳遞給可以查詢當前位置的地圖對象。並且每隔x秒用戶表示一次。我可以重複使用大部分服務,只需要設置它即可繼續呼叫。

我在想,也許是隻需使用無源的供應商來更新當前位置,使用當前的MapView的另一件事。

我唯一的另一個考慮因素是欺騙:我想嘗試,並防止位置欺騙。我可以做到這一點,所以我們不允許模擬位置。但這並不意味着它不能被欺騙。

所以...任何想法,將不勝感激。謝謝。

+0

你沒有使用'setLocationSource()'的任何原因,將位置數據提供給'GoogleMap'? – CommonsWare

+0

我可以使用:GoogleMap對象使用ac​​tivate(OnLocationChangedListener)激活其位置提供程序。 是的,我希望在Google地圖中使用默認位置提供程序。處理人們打開/關閉提供程序,必須處理屏幕關閉等。我只是寧願使用默認的。雖然我可以使用setLocationSource(),(這是我的第一選擇 - 雖然寫得不好)。 – Chrispix

回答