我需要在每次找到新的 LatLng
时在Google Map 上绘制折线,其颜色根据当前速度与车辆最大速度的百分比来确定 .
我正在使用以下代码:
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时重绘折线 .
所以任何人都可以帮我解决这个问题 .
感谢和问候
1 回答
好的,为了"redraw"
Polyline
你有两个选择:使用
Polyline.remove()
删除它来模拟它 . 然后使用PolylineOptions
再次构建它并添加GoogleMap.addPolyline()
.更改折线的属性 . 您可以使用
setColor(int)
设置颜色并使用setPoints(List<LatLng>)
设置点 . 在调用任何这些方法后,折线应自动在 Map 上重绘 .在这两种情况下,您都必须保持对创建的折线的引用,但您已经在行中执行了以下操作:
如果我是你,我会选择第二个选项,因为你不必重新创建整个
Route.paths
集合 . 相反,您只需要添加一条折线 - 从之前的最后一个LatLng
到最后记录的LatLng
.