【问题标题】:Android google maps trouble on markers removeAndroid 谷歌地图标记删除问题
【发布时间】:2016-09-24 15:17:27
【问题描述】:

我正在实施 Android Google Maps v2。并添加到地图几个标记,在删除位于屏幕边界之外的标记后,一些标记图标会丢失图像 Marker icons after removing other markers 如果使用 maker.setVisible(false) 一切都很好

调用marker.remove()的代码

List<Point> points = ((SearchPointsMapResponse) response).getPoints(); Iterator<Point> iterator; for (iterator = mPoints.values().iterator(); iterator.hasNext();) { Point point = iterator.next(); if (!points.contains(point)) { Marker marker = mMarkers.remove(point.getId()); marker.remove(); iterator.remove(); } }

【问题讨论】:

  • 你能发布你的代码吗?
  • @Nisarg 我将代码发布到问题
  • 什么是 mMarkers ?你如何设置积分ID?
  • @Smartiz mMarkers 是 private Map&lt;String, Marker&gt; mMarkers = new HashMap&lt;&gt;(); private Map&lt;Marker, Point&gt; mPoints = new HashMap&lt;&gt;();,其中字符串键是 Point.getId()。在地图上添加标记/点的所有代码imgur.com/BKSaio2imgur.com/yLfnh1m

标签: android google-maps-markers google-maps-android-api-2


【解决方案1】:

我猜问题出在这部分:

 Marker marker = mMarkers.remove(point.getId());
 marker.remove();
 iterator.remove();

mMarkers.remove(int);

将删除该特定位置的对象!不是具有该 id 的对象! 举个例子:

我们有一个 id 为 3 的点。调用 mMarkers.remove(3); 将删除第 4 个添加的标记!不是 id 为 3 的标记!

【讨论】:

  • 请回答,但 mMarkers.remove 使用键调用 - mMarkers.remove(Object key) 因为 Point.getId() - 返回字符串类型的点 id。
猜你喜欢
  • 1970-01-01
  • 2017-02-10
  • 2016-10-12
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 2019-03-07
相关资源
最近更新 更多