我在标记点击事件上成功制作和绘制多边形线 . 但有一件事我不想发生 .
那就是当我点击标记让我说JackiMarker它绘制到目标位置的路线然后我点击第二个标记让我们说MichaelMarker它也绘制了路线但是前一个标记仍然存在我不想要的 .
我正在唱this代码来绘制和删除标记 . 它有clearRoute功能,但它不适合我,请帮我做什么 . 请帮我删除我在 Map 上绘制的最后一条折线 .
请试试这个,
Polyline polyline = this.mMap.addPolyline(new PolylineOptions().....);
然后当你想删除它:
polyline.remove();
如果你有很多 Polylines ,只需将它们添加到List中,因为它们放在 Map 上:
Polylines
List<Polyline> polylines = new ArrayList<Polyline>(); for(....) { polylines.add(this.mMap.addPolyline(new PolylineOptions()....)); }
当你想删除时:
for(Polyline line : polylines) { line.remove(); } polylines.clear();
关键是保持对 Polyline objects 的引用并在每个引用 .remove() .
Polyline objects
.remove()
它是我在问题中分享的100%工作代码,问题在我的最后 . 我正在做什么,当我点击标记时尝试删除路径,而OnMarkerClickListener我正在启动Route Class,它创建了同一个类的另一个实例,从而创建了0索引的折线数组,这就是为什么我不是进入clearRoute方法的for循环 .
所以通过实例化Route类作为全局解决了我的问题 .
2 回答
请试试这个,
然后当你想删除它:
如果你有很多
Polylines
,只需将它们添加到List中,因为它们放在 Map 上:当你想删除时:
关键是保持对
Polyline objects
的引用并在每个引用.remove()
.它是我在问题中分享的100%工作代码,问题在我的最后 . 我正在做什么,当我点击标记时尝试删除路径,而OnMarkerClickListener我正在启动Route Class,它创建了同一个类的另一个实例,从而创建了0索引的折线数组,这就是为什么我不是进入clearRoute方法的for循环 .
所以通过实例化Route类作为全局解决了我的问题 .