gpt4 book ai didi

java - 折线未从 GoogleMap 中删除

转载 作者:行者123 更新时间:2023-11-30 10:38:17 25 4
gpt4 key购买 nike

我有一个 map ,我在其中放置标记并将它们与多段线连接起来:

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);
}

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

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

最佳答案

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

关于java - 折线未从 GoogleMap 中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39753940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com