折线未从 GoogleMap 中删除

Polylines not being removed from GoogleMap

我有一张地图,我在其中放置标记并使用折线连接它们:

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<Polyline> polyLines = new ArrayList<>();

当我删除最后一个标记时,我也想删除最后一个折线。我在做下一个:

if (polyLines.size() > 0) {
     Polyline polyLine = polyLines.get(polyLines.size() - 1);
     polyLine.remove();
     polyLines.remove(polyLines.size() - 1);
}

我正在删除标记,但多段线保留在地图中。我也将其从 ArrayList 中删除。

谁能帮我看看发生了什么事?我试过使多段线不可见或更改颜色,但都行不通。

在我看来,您实际上是在向地图添加两条折线...如果 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);