清除除选定标记之外的所有标记

时间:2016-01-20 03:11:23

标签: java android google-maps google-maps-android-api-2

是否可以清除所有谷歌地图标记,除了所选的标记(显示信息窗口的标记),并保持其信息窗口打开?

我使用此代码刷新地图,它会清除所有标记并根据相机的位置添加新标记:

            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()中删除,因此标记及其信息窗口不会消失。我想通过使用谷歌地图对象中提供的方法而不是循环标记列表来实现这一点,这可能需要花费很多时间。

感谢。

2 个答案:

答案 0 :(得分:1)

我猜你应该使用Marker markerName = map.addMarker(new MarkerOptions().position(latLng).title("Title")); 从地图中删除所有标记。然后根据@Hiren评论,你可以添加一个你想要保留的标记。这比你期待的要快一点。

map.clear();

注意:{{1}}也会移除折线,圆圈等。

答案 1 :(得分:0)

你能试试这个吗?

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

每当您想要将其删除时,您都可以致电

markerName.remove();

如果您有多个数据,则使用for循环并删除除所选标记之外的所有数据。

希望这是有道理的。