如何使用按钮在Android中的谷歌地图上显示和隐藏标记

时间:2014-12-02 21:35:09

标签: android google-maps google-maps-api-3 map marker

我是Android编码新手。我正试图在我的地图上切换我设法显示的标记,并在操作栏中显示一个按钮。

到目前为止,我已经创建了这个方法,我不明白我需要做什么

在这里,我基本上创建了一个位置数组,并使用for循环将所有标记放在我的地图上。现在我想要做的是隐藏标记,如果它们通过按钮点击可见,并显示标记,如果它们被隐藏。

public boolean showShops(){
        rL = new ArrayList<LatLng>();
        rl.add(new LatLng(40.433433, -1.422423));
        rl.add(new LatLng(40.433434, -1.422534));

        for(LatLng nRL : rL){ 
            mMap.addMarker(new MarkerOptions() 
            .position(nRL)
            .title("Shop")
        }

        return true;
    }

我一直试图弄清楚它已经很长时间了,似乎无法找到解决方案。我设法发现你必须setVisible(false);隐藏和setVisible(true);展示,但我不知道如何实现它。我尝试在上面的代码中添加。而不是.add,但是我收到了错误。

有人可以帮忙。

感谢。

2 个答案:

答案 0 :(得分:2)

如果您的地图上没有其他任何您想要隐藏的内容,请使用 GoogleMap对象上的clear,会移除地图的所有其他叠加层。

如果该方法不适合您,则必须保留对所有标记的引用(例如在ArrayList中)并分别对每个标记调用removesetVisible():< / p>

保持

ArrayList<Marker> myMarkers = new ArrayList<Marker>(); 

并将您添加到地图中的每个标记添加到该列表中。

for(LatLng nRL : rL){ 
  myMarkers.add(mMap.addMarker(new MarkerOptions() 
        .position(nRL)
        .title("Shop"));
    }

如果要将它们全部设置为不可见,请遍历该列表并在所有列表上setVisible(false)

 for (Marker m : myMarkers) {
   m.setVisible(false);
 }

答案 1 :(得分:0)

如果您想让标记不可见,您也可以使用marker.setAlpha(0)