您可以在 Android 上使用新的 V2 Google 地图 API 简单地添加标记。因为标记是在配置更改或保存实例时重新创建的,所以您必须通过其 ID 引用它们。问题是如何从具有特定 ID 的地图标记中删除?
我的用例是将标记添加到地图中,将其 id 与真实对象的映射一起存储。然后用户删除了其中一个真实对象,因此我找到了 Marker id 并想从地图中删除 Marker,我知道的唯一方法是拥有 Marker 对象并在其上调用 remove()。
您可以在 Android 上使用新的 V2 Google 地图 API 简单地添加标记。因为标记是在配置更改或保存实例时重新创建的,所以您必须通过其 ID 引用它们。问题是如何从具有特定 ID 的地图标记中删除?
我的用例是将标记添加到地图中,将其 id 与真实对象的映射一起存储。然后用户删除了其中一个真实对象,因此我找到了 Marker id 并想从地图中删除 Marker,我知道的唯一方法是拥有 Marker 对象并在其上调用 remove()。
关于在配置更改上重新创建标记的文档是错误的,它实际上对我们有好处,但那里是错误的。
我在进行地图聚类时也遇到过类似的情况,我需要在将标记添加到群集时将其删除。
我使用的解决方案是,在创建标记并将其添加到地图中并将标记存储在Map (String - Marker)中时,我持有对标记的引用,其中 key(String) 将是自动生成的标记 id,值将是标记对象。
现在,您可以通过其 id 获取对标记对象的引用并在该标记上调用remove()。
我希望这对你有帮助。
只需尝试以下操作:
private Marker myMarker;
myMarker = getMap().addMarker(new MarkerOptions()
.position(latLng)
.title("My Spot")
.snippet("This is my spot!"));
现在您要删除的标记可以调用
myMarker.remove();