Google映射api v2折线android

时间:2013-02-06 04:00:13

标签: android google-maps-android-api-2 polyline

每次找到新的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.speedsArrayList,其中保持所有速度,maxspeed是车辆的maxspeed变化和颜色时车辆的最大速度折线是根据最大速度的%年龄,随着最大速度的增加,前一折线的颜色也应该改变,所以我需要再次绘制它。所以我的问题是如何在每次获得新的latlng时重绘折线。

所以任何人都可以帮我解决这个问题。

谢谢&amp;此致

1 个答案:

答案 0 :(得分:3)

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

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

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

  3. 在这两种情况下,您都必须保留对创建的折线的引用,但您已在该行中执行:

    Route.paths.add(polyline);
    

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