从 GoogleMap中删除标记

在适用于 Android 的新 Google Maps API 中,我们可以add a marker,但是没有办法(轻松地)删除一个。

在适用于 Android 的新 Google Maps API 中,我们可以add a marker,但是没有办法(轻松地)删除一个。

我的解决方案是将标记保留在地图中,并在要删除标记时重新绘制地图,但效率不高。

private final Map<String, MarkerOptions> mMarkers = new ConcurrentHashMap<String, MarkerOptions>();
private void add(String name, LatLng ll) {
  final MarkerOptions marker = new MarkerOptions().position(ll).title(name);
  mMarkers.put(name, marker);
  runOnUiThread(new Runnable() {
    @Override
    public void run() {
      mMap.addMarker(marker);
    }
  });
}
private void remove(String name) {
  mMarkers.remove(name);
  runOnUiThread(new Runnable() {
    @Override
    public void run() {
      mMap.clear();
      for (MarkerOptions item : mMarkers.values()) {
        mMap.addMarker(item);
      }
    }
  });
}

有人有更好的主意吗?

277

addMarker的方法签名是:

public final Marker addMarker (MarkerOptions options)

因此,当您通过指定标记的选项将标记添加到GoogleMap时,您应该保存返回的Marker对象(而不是用于创建它的MarkerOptions对象)。此对象允许您稍后更改标记状态。当您完成标记后,您可以调用Marker.remove()将其从地图中删除。

顺便说一句,如果您只想暂时隐藏它,则可以通过调用Marker.setVisible(boolean)来切换标记的可见性。

40

像这样将标记添加到地图

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

然后,您将能够使用 remove 方法,它将仅删除该标记

markerName.remove();
32

要清除地图中的所有涂鸦,请使用

map.clear()
6

如果标记存在,请删除最后一个标记。如果标记不存在,请创建当前标记

Marker currentMarker = null;
if (currentMarker!=null) {
    currentMarker.remove();
    currentMarker=null;
}
if (currentMarker==null) {
    currentMarker = mMap.addMarker(new MarkerOptions().position(arg0).
    icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
}

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(765)
返回的 mac地址对于不同的设备是相同的
上一篇
如何在ASP.NETCore6WebAPI中添加端点
下一篇

相关推荐

  • Road map:GoogleMapRoad API未插入路径且未给出平滑路线

    关于Road map的问题,在avoid low bridges google maps中经常遇到,我试图使用道路检查器中的道路 API 获得以下路线路径的平滑路线,但没有获得平滑的路线。Google road api 未能提供平滑的路线。路线的某些部分与实际的道路路线不平滑,例如转弯,在桥梁等请寻找下面的路线路径,并提供解决方案,以获得沿实际道路的平滑路线 / 更准确的路线。…

    2022-12-27 15:30:26
    0 94 22
  • Linux端口映射外网:游牧和端口映射(network port map)

    关于Linux端口映射外网的问题,在network port map中经常遇到,Nomad 有三种不同的方式来映射端口:…

    2022-12-13 07:31:47
    0 24 96
  • GoogleMapsAPI|当外面很黑(与时间有关)时 如何更改地图样式(复古为夜间模式)

    我目前正在一个网站项目,由于某种原因,我的客户希望嵌入式地图在外面黑暗时改变风格。(风格:复古和夜间模式)…

    2022-11-11 15:14:12
    0 99 10
  • 电脑键盘指法:使用钢琴键盘作为电脑键盘(google piano keyboard)

    关于电脑键盘指法的问题,在google piano keyboard中经常遇到,我有RSI问题,并尝试了 30 种不同的计算机键盘,这些键盘都使我感到痛苦。弹钢琴不会引起我的痛苦。我弹钢琴已有 20 年了,没有任何痛苦的问题。我想知道是否有一种方法可以从 MIDI 键盘捕获 MIDI 并输出键盘笔划。我对 MIDI 一无所知,但我希望获得一些有关如何将此信号转换为击键的指导。…

    2022-12-13 06:20:30
    0 36 66
  • 电脑键盘程序:使用钢琴键盘作为电脑键盘(google piano keyboard)

    关于电脑键盘程序的问题,在google piano keyboard中经常遇到,我有RSI问题,并尝试了 30 种不同的计算机键盘,这些键盘都使我感到痛苦。弹钢琴不会引起我的痛苦。我弹钢琴已有 20 年了,没有任何痛苦的问题。我想知道是否有一种方法可以从 MIDI 键盘捕获 MIDI 并输出键盘笔划。我对 MIDI 一无所知,但我希望获得一些有关如何将此信号转换为击键的指导。…

    2022-12-02 09:00:03
    0 14 36
  • Ios韩国账号:造型的 Google韩国地图

    关于Ios韩国账号的问题,在google maps korea中经常遇到,我有一个网站,在那里我使用了一个带样式的谷歌地图。如果你把地图移到韩国,没有地图特征 (道路、高速公路、地方),只有命名的城市和一些城市边界。如果我删除样式,所有这些功能都会恢复。…

    2022-12-22 03:47:36
    0 52 56
  • Vr怎么玩:适用于三星GearVR的GoogleVR SDK

    关于Vr怎么玩的问题,在gearvr oculus中经常遇到,Google VR SDK 是否可以在 Samsung Gear VR(Oculus)上运行,或者我是否绑定到 Oculus SDK?或者是否有任何其他替代方案(最好是开源的)…

    2022-12-18 13:21:22
    0 35 83
  • 仿爱聊源码:Google环聊-邀请

    关于仿爱聊源码的问题,在how to send a google hangout invite中经常遇到,这是我的环聊按钮:…

    2022-12-06 13:33:05
    0 79 86

发表评论

登录 后才能评论

评论列表(21条)