Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 清除所有标记(选定标记除外)_Java_Android_Google Maps_Google Maps Android Api 2 - Fatal编程技术网

Java 清除所有标记(选定标记除外)

Java 清除所有标记(选定标记除外),java,android,google-maps,google-maps-android-api-2,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(

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

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

            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));
            }
googleMap.clear();
//保存将保留在新列表中的所有标记,删除其他标记
对于(int j=0;j
但是,由于信息窗口是可单击的,并且单击打开一个新片段,我希望所选标记不受此
clear()
的影响,因此标记及其信息窗口不会消失。我希望通过使用GoogleMap对象中提供的方法来实现这一点,而不是在标记列表上循环,这可能需要很多时间


谢谢。

你能试试这个吗

Marker markerName = map.addMarker(new MarkerOptions().position(latLng).title("Title"));
无论何时要删除它,都可以调用

markerName.remove()

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


希望这会有意义。

我想,您应该使用,
map.clear()
从地图中删除所有标记。然后根据@Hiren的评论,你可以添加一个你想要保留的标记。这比你期望的要快一点

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

注意:
map.clear()还将删除多段线、圆等。

如何定义标记?它是一个
ArrayList
?是的。但是一个接一个地移除每个标记会有点太乱。我很怀疑谷歌地图有没有一种方法可以直接做到这一点,我认为单独删除每个标记是唯一的解决办法。您已经有了列表,所以应该很容易实现。Arf。。。我会看看是否有人能解决这个问题,否则我会这么做的,谢谢。嗨,Hiren,这很有意义是的,我正在考虑使用它。然而,我更准确地寻找一种方法来实现这一点,使用我的谷歌地图对象中提供的方法,获取更多信息clarity@Virthuss,好的,请尝试一下,我已经实现了,它可以工作了。但是像这样在一组标记上循环会有糟糕的表现。这就是为什么我在寻找另一条路是的。它会关上的,我想留着它open@Virthuss,是的,可以再打开,检查一下。谢谢,我要试试这个。我也会投票支持你的答案。