我是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,但是我收到了错误。
有人可以帮忙。
感谢。
答案 0 :(得分:2)
如果您的地图上没有其他任何您想要隐藏的内容,请使用
GoogleMap
对象上的clear,会移除地图的所有其他叠加层。
如果该方法不适合您,则必须保留对所有标记的引用(例如在ArrayList中)并分别对每个标记调用remove或setVisible():< / 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)
。