2016-01-20 141 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