gpt4 book ai didi

android - 从 GoogleMap 中删除标记

转载 作者:IT老高 更新时间:2023-10-28 13:03:55 25 4
gpt4 key购买 nike

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

我的解决方案是将标记保留在 map 中,并在我想删除标记时重新绘制 map ,但这不是很有效。

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);
}
}
});
}

有人有更好的主意吗?

最佳答案

addMarker 的方法签名是:

public final Marker addMarker (MarkerOptions options)

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

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

关于android - 从 GoogleMap 中删除标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13692398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com