折线未从GoogleMap中移除

时间:2016-09-28 17:21:01

标签: java android google-maps polyline

我有一张地图,我正在放置标记并将它们与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中删除。

任何人都可以帮我找出发生了什么事吗?我试图让折线不可见或改变颜色,但它不起作用。

1 个答案:

答案 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);