折线未从 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);
我有一张地图,我在其中放置标记并使用折线连接它们:
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);