我仍然不相信我找不到任何問題,所以請隨時指出我的問題。相機停止移動一段時間後更新Google地圖
我正在使用顯示多個標記的Google地圖實施應用程序。我想讓它變成動態的,以便只繪製看到的標記。爲此,我希望能夠知道地圖什麼時候完全停止,然後等待幾秒鐘,以便在用戶可能仍然在移動地圖時不亂用地圖,然後清除標記並繪製新的地圖。如果用戶在定時器觸發前移動,它必須取消,然後再次開始計數。
到目前爲止,當使用onCameraChangeListener
停止動畫時,我設法啓動相機更改,但it's definition指定在動畫中可能仍會調用該動畫。這是做到這一點的正確方法嗎?
第二個問題是關於定時器。我目前的執行情況如下:
map.setOnCameraChangeListener(new OnCameraChangeListener() {
public void onCameraChange(CameraPosition position) {
refresher.schedule(new refreshMapData(), 2000);
}
});
而實際更新所需的標記定時器是這一個:
class refreshMapData extends TimerTask{
public void run() {
map.clear();
for (...) {
map.addMarker(...);
}
}
}
這顯然會拋出一個「Not主線程」異常並導致我下一個問題:這個問題的解決方法是什麼?如果我不允許在主線程之外執行此操作,那麼如何使用定時器修改Google Map的值?
編輯:關於第一個問題,我想我只需要比較自上次以來位置是否發生了變化,以便做到。只需要定時器更新問題的答案。
現在請你分享一下這個代碼吧。我想要 –
@QadirHussain很抱歉,我無法再訪問該項目。無論如何,我最終使用MaciejGórski的lib,[Android Maps Extensions](http://code.google.com/p/android-maps-extensions/),所以如果我是你,我幾乎可以放棄它。 – h4lc0n