Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谷歌地图api v2多段线android_Android_Google Maps Android Api 2_Polyline - Fatal编程技术网

谷歌地图api v2多段线android

谷歌地图api v2多段线android,android,google-maps-android-api-2,polyline,Android,Google Maps Android Api 2,Polyline,每次发现一个新的LatLng时,我需要从ArrayList在谷歌地图上绘制多段线,其颜色根据车辆当前速度与最大速度的百分比 我正在为此使用以下代码: for (int i = 0; i < Route.speeds.size(); i++) { colorOfGraph = graphColor(Route.speeds.get(i), maxSpeed); polylineOptions = new PolylineOpt

每次发现一个新的
LatLng
时,我需要从
ArrayList
在谷歌地图上绘制多段线,其颜色根据车辆当前速度与最大速度的百分比

我正在为此使用以下代码:

 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);
        }
for(int i=0;i
其中,
Route.speeds
是一个保持所有速度的
ArrayList
maxspeed
是车辆的最大速度,当车辆的
maxspeed
发生变化时,该速度会发生变化,多段线的颜色根据最大速度的百分比来确定,随着最大速度的增加,上一条多段线的颜色也应该改变,所以我需要再次绘制它。因此,我的问题是如何在每次使用新板条时重新绘制多段线

所以请任何人帮我解决这个问题

感谢和问候

好的,为了“重新绘制”多段线
,您有两个选项:

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

  • 更改多段线的属性。您可以使用
    setColor(int)
    设置其颜色,并使用
    setPoints(List)
    设置点。调用任何这些方法后,多段线应自动在地图上重新绘制自身

  • 在这两种情况下,您都必须保留对已创建多段线的引用,但您已经在直线中这样做了:

    Route.paths.add(polyline);
    
    如果我是你,我会选择第二个选项,因为你不必重新创建整个
    Route.path
    集合。相反,您只需添加一条多段线,即从先前记录的最后一条
    LatLng
    到最后一条
    LatLng
    的多段线。

    Ok,要“重画”该
    多段线,您有两个选项:

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

  • 更改多段线的属性。您可以使用
    setColor(int)
    设置其颜色,并使用
    setPoints(List)
    设置点。调用任何这些方法后,多段线应自动在地图上重新绘制自身

  • 在这两种情况下,您都必须保留对已创建多段线的引用,但您已经在直线中这样做了:

    Route.paths.add(polyline);
    

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

    您的问题是什么?对不起,但现在听起来你想让别人帮你编码……我不想这样,实际上我只是想寻求帮助来解决我的问题我已经写了代码,但你还没有说你的问题是什么!您的帖子中没有问题描述。毫无疑问!我编辑了我的问题。请你现在检查一下。你的问题是什么?对不起,但现在听起来你想让别人帮你编码……我不想这样,实际上我只是想寻求帮助来解决我的问题我已经写了代码,但你还没有说你的问题是什么!您的帖子中没有问题描述。毫无疑问!我编辑了我的问题。你现在可以检查一下吗?不,实际上我想用不同的颜色重新绘制它,而不是将它附加到以前录制的latlng中。因此,我必须使用polyline.remove()删除多段线,对吗?如果您只更改点和颜色,这两个选项都是等效的-只需选择一个最适合您的。不,实际上我想用不同的颜色重新绘制它,而不是将它附加到以前录制的Latling中。因此,我必须使用polyline.remove()删除多段线,对吗?如果您只更改点和颜色,这两个选项都是等效的-只需选择一个最适合您的选项即可。