【问题标题】:Android maps set multiple markers invisibleAndroid地图设置多个标记不可见
【发布时间】:2016-07-28 22:39:32
【问题描述】:

如何在 Android Maps V2 上隐藏多个标记?

我有 10 个标记。 5 某种类型的电影院和 5 另一种类型。

如果我使用下面的代码,只有最后一个标记会消失。

标记cinema1,cinema2;

cinema1 = gMap.addMarker......

cinema1 = gMap.addMarker......

cinema2 = gMap.addMarker......

cinema2 = gMap.addMarker......

等等

点击事件

cinema1.setVisible(false);

这只会将cinema1的最后一个标记=设置为不可见(显然)所以问题是如何在不为每个标记声明的情况下将所有5个标记设置为不可见?

谢谢

【问题讨论】:

  • 与其让所有标记不可见更好地清除您的地图...
  • 我想要应用启动时地图上的所有 10 个标记。如果用户单击cinema1 的单选按钮,我希望cinema2 的所有5 个标记都不可见。如果他们单击cinema2 的单选按钮,则cinema2 标记会重新出现,而cinema1 标记会消失。
  • @JCom09 你找到问题的答案了吗?

标签: android google-maps


【解决方案1】:

您应该使用标记创建列表并在其帮助下进行操作。

Marker dilers1,dilers2;
List<Marker> markers = new ArrayList<>();
dilers1 = mMap.addMarker(new MarkerOptions().position(new LatLng(55.755823,37.622315)).title("Melbourne"));
dilers2 = mMap.addMarker(new MarkerOptions().position(new LatLng(55.765823,37.612315)).title("Melbourne2"));
markers.add(dilers1);
markers.add(dilers2);

public void changer(){
   for (Marker mkr: markers) {
       mkr.setVisible(false);
   }

}

【讨论】:

    【解决方案2】:

    如果您的类型有 ID,您可以只使用 Hashmap

    Hashmap<Integer, Marker> markers = new Hashmap<Integer, Marker>()
    
    markers.Add(cinema1.getID(), gMap.addMarker(...));
    markers.Add(cinema2.getID(), gMap.addMarker(...));
    markers.Add(cinema3.getID(), gMap.addMarker(...));
    

    【讨论】:

      猜你喜欢
      • 2014-07-04
      • 2015-12-27
      • 2020-04-22
      • 1970-01-01
      • 2016-03-16
      • 1970-01-01
      • 2013-10-18
      • 2019-11-08
      • 2021-10-19
      相关资源
      最近更新 更多