2013-02-06 168 views
0

我需要从ArrayList每次发现一个新的LatLng谷歌地图上的多段线,其颜色是根据当前速度的百分比,以车辆的最大速度。谷歌地图api v2多义线android

我使用下面的代码为:

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是具有保持在其中的所有速度的ArrayListmaxspeed是这改变了车辆的最大速度时的车辆变化maxspeed和多段线的颜色根据最大速度的百分比,随着最大速度的增加,以前多段线的颜色也应该改变,所以我需要再次绘制它。所以我的问题是如何在每次获得新的latlng时重新绘制多段线。

请大家帮助我解决这个问题。

感谢&问候

+0

什么是你的问题?对不起,但现在它听起来像你希望别人为你编码... – andr

+0

我不希望这实际上我只是要求帮助解决我的问题我已经写了代码 – ekjyot

+0

,但你还没有说过什么是你的问题!您的帖子中没有问题描述。毫无疑问! – andr

回答

3

好吧,为了 “重绘” 的Polyline你有两个选择:

  1. 使用Polyline.remove()移除模拟。然后使用PolylineOptions再次构建它并添加GoogleMap.addPolyline()

  2. 更改多段线的属性。您可以使用setColor(int)来设置它的颜色,并使用setPoints(List<LatLng>)设置点。在您调用任何这些方法后,多段线应自动在地图上重绘。

在你必须保持到创建的折线引用这两种情况下,但你已经做到这一点的线:

Route.paths.add(polyline); 

如果我是你,我会选择第二个选项去,因为你赢了不必重新创建整个Route.paths集合。相反,您将不得不添加一条折线 - 从先前的最后LatLng到最后的LatLng记录的折线。

+0

不,实际上我想用不同的颜色重新绘制它,而不是在之前记录的latlng中追加它。所以我将不得不使用Polyline.remove()删除多段线? – ekjyot

+0

如果你只改变点数和颜色,这两个选项都是相同的 - 只需选择一个最适合你的选项。 – andr