2016-01-20 144 views
-1

是否可以清除所有Google地圖標記除了選定的標記(顯示信息窗口的那個標記),並保持其信息窗口打開?清除除了所選標記之外的所有標記

我根據相機在哪裏使用此代碼來刷新我的地圖,它是清除所有標記,並添加新的:

  googleMap.clear(); 
      // Save all the marker which will be kept on a new list, remove the others 

      for (int j = 0; j < markers.size(); j++) { 
       googleMap.addMarker(markers.get(j)); 
      } 

但是,隨着信息的窗口都可以點擊和點擊打開一個新的片段,我想從這個clear()中免除選定的標記,所以標記及其信息窗口不會消失。我想通過使用google地圖對象中提供的方法來實現此目的,而不是在標記列表上循環,這可能需要很長時間。

謝謝。

+0

如何定義'markers'?它是一個'ArrayList '? –

+0

是的。但是逐個刪除所有標記會有點太麻煩。我很懷疑可能的谷歌地圖方法直接做到這一點 – Virthuss

+0

我認爲單獨去除每個標記是唯一的解決方案。你已經有了這個列表,所以它應該很容易實現。 –

回答

0

你可以試試這個嗎?

Marker markerName = map.addMarker(new MarkerOptions().position(latLng).title("Title")); 

每當你想刪除它,你可以調用

markerName.remove();

如果你有多個數據,然後用連續工作循環,並刪除所有除了你選擇的標記。

希望這會有道理。

+0

嗨Hiren,它確實感覺是的,我正在考慮使用它。然而,我更預先尋找一種方法來實現這一點,使用我的谷歌地圖對象提供的方法,更清晰 – Virthuss

+0

@Virthuss,好的請試試 –

+0

我已經實現它,它的工作原理。但是,在一組標記上循環顯示效果不佳。這就是爲什麼我正在尋找另一種方式 – Virthuss

1

我想你應該使用map.clear()從地圖中刪除所有標記。然後根據@Hiren評論,你可以添加一個你想保存的標記。這會比你期待的快一點。

Marker markerName = map.addMarker(new MarkerOptions().position(latLng).title("Title")); 

注:map.clear();也將刪除折線,圓形等

+0

但這會關閉InfoWindow的權利? – Virthuss

+0

是的。它會關閉它。 – Hemang

+0

我想保持開放 – Virthuss