我有一张地图,我正在放置标记并将它们与PolyLines连接:
PolylineOptions p = new PolylineOptions();
p.color(Color.BLUE);
p.width((float) 7.0);
Polyline polyLine = this.mMap.addPolyline(p);
p.add(actualLocation);
LatLng previousPoint = latLngs.get(latLngs.size() - 2);
p.add(previousPoint);
this.polyLines.add(polyLine);
mMap.addPolyline(p);
我将对象p保存在一个arraylist中:
ArrayList<Polyline> polyLines = new ArrayList<>();
当我删除最后一个标记时,我也要删除最后一个折线。我正在做下一个:
if (polyLines.size() > 0) {
Polyline polyLine = polyLines.get(polyLines.size() - 1);
polyLine.remove();
polyLines.remove(polyLines.size() - 1);
}
我正在移除标记,但折线保留在地图中。我也将它从ArrayList中删除。
任何人都可以帮我找出发生了什么事吗?我试图让折线不可见或改变颜色,但它不起作用。
答案 0 :(得分:1)
在我看来你实际上是在向地图添加两条折线...如果PolylineOptions()在连接到折线后是可变的,它们就在同一个位置,否则你要添加一个没有定位后跟一个第二。只有第二条折线被添加到您的列表中。
而不是:
PolylineOptions p = new PolylineOptions();
p.color(Color.BLUE);
p.width((float) 7.0);
Polyline polyLine = this.mMap.addPolyline(p); // Add before location set
p.add(actualLocation);
LatLng previousPoint = latLngs.get(latLngs.size() - 2);
p.add(previousPoint);
this.polyLines.add(polyLine);
mMap.addPolyline(p); // Add after location set
你想这样做吗?
PolylineOptions p = new PolylineOptions();
p.color(Color.BLUE);
p.width((float) 7.0);
p.add(actualLocation);
LatLng previousPoint = latLngs.get(latLngs.size() - 2);
p.add(previousPoint);
Polyline polyLine = mMap.addPolyline(p);
this.polyLines.add(polyLine);