我正在使用Google Maps API V2,我想知道是否有辦法區分用戶與地圖進行交互以移動或縮放相機,以及何時animateCamera方法被調用。谷歌地圖區分用戶移動和動畫
我想要做的就是讓用戶跟隨他們的地圖中心,直到他們放大或拖動地圖,此時我想讓用戶完全控制。
我的問題是onCameraChange在用戶移動地圖和地圖動畫時被調用。我能做些什麼來解決這個問題?
我正在使用Google Maps API V2,我想知道是否有辦法區分用戶與地圖進行交互以移動或縮放相機,以及何時animateCamera方法被調用。谷歌地圖區分用戶移動和動畫
我想要做的就是讓用戶跟隨他們的地圖中心,直到他們放大或拖動地圖,此時我想讓用戶完全控制。
我的問題是onCameraChange在用戶移動地圖和地圖動畫時被調用。我能做些什麼來解決這個問題?
從其他移動區分animateCamera,您可以在這裏評論使用代碼:http://code.google.com/p/gmaps-api-issues/issues/detail?id=4636#c21
如果使用在右上角的按鈕myLocation,這是不行的,因爲你不能區分按下它(當你要開始跟蹤用戶位置)從其他用戶的操作請參見:http://code.google.com/p/gmaps-api-issues/issues/detail?id=4789
爲了獲得最佳的用戶體驗爲3.1.36我建議您按照這樣的回答:Disable my-location when user moves the map and re-enable when he press the my-location button
當你動畫的地圖,你通過在CancelableCallback
從而可以檢測出是否
正如你所知道
,你應該有足夠的狀態您的活動/片段中的信息可以決定用戶在進行動畫時與地圖進行交互。此時,您可以決定不再動畫地圖。 (避免後續調用animateCamera
谷歌地圖有一個很好的回調.OnCameraMoveStartedListener描述here
點是:
@Override
public void onCameraMoveStarted(int reason) {
if (reason == OnCameraMoveStartedListener.REASON_GESTURE) {
Toast.makeText(this, "The user gestured on the map.",
Toast.LENGTH_SHORT).show();
} else if (reason == OnCameraMoveStartedListener
.REASON_API_ANIMATION) {
Toast.makeText(this, "The user tapped something on the map.",
Toast.LENGTH_SHORT).show();
} else if (reason == OnCameraMoveStartedListener
.REASON_DEVELOPER_ANIMATION) {
Toast.makeText(this, "The app moved the camera.",
Toast.LENGTH_SHORT).show();
}
}
該代碼是正是我需要的,謝謝。 –