每次找到新的ArrayList
时,我需要从LatLng
在Google地图上绘制折线,其颜色取决于当前速度与车辆最大速度的百分比。
我正在使用以下代码:
for (int i = 0; i < Route.speeds.size(); i++)
{
colorOfGraph = graphColor(Route.speeds.get(i), maxSpeed);
polylineOptions = new PolylineOptions().addAll(Route.points).width(5).color(colorOfGraph);
Polyline polyline = googleMap.addPolyline(polylineOptions);
Route.paths.add(polyline);
}
其中Route.speeds
是ArrayList
,其中保持所有速度,maxspeed
是车辆的maxspeed
变化和颜色时车辆的最大速度折线是根据最大速度的%年龄,随着最大速度的增加,前一折线的颜色也应该改变,所以我需要再次绘制它。所以我的问题是如何在每次获得新的latlng时重绘折线。
所以任何人都可以帮我解决这个问题。
谢谢&amp;此致
答案 0 :(得分:3)
好的,为了“重绘”Polyline
,你有两个选择:
使用Polyline.remove()
删除它来模拟它。然后使用PolylineOptions
再次构建它,并添加GoogleMap.addPolyline()
。
更改折线的属性。您可以使用setColor(int)
设置颜色,并使用setPoints(List<LatLng>)
设置点数。在调用任何这些方法后,折线应自动在地图上重绘。
在这两种情况下,您都必须保留对创建的折线的引用,但您已在该行中执行:
Route.paths.add(polyline);
如果我是你,我会选择第二个选项,因为你不必重新创建整个Route.paths
集合。相反,您只需要添加一条折线 - 从前一个LatLng
到最后一个LatLng
的折线。