如何在谷歌地图上绘制折线,两个位置之间有两种不同的颜色

时间:2017-02-28 12:02:17

标签: android google-maps polyline google-polyline

我有两个位置,我需要在这两个位置之间绘制两条折线,我完成了在这些位置之间绘制折线。

问题是,折线是一种颜色,但由于要求我必须绘制两种不同颜色的折线,如下所示: - enter image description here

如果有人有一些有意义的代码段或对此问题的一些建议...提前致谢

2 个答案:

答案 0 :(得分:7)

自2017年2月15日起,您可以更改折线的笔触线。来自the Release Notes(强调我的)

  

此版本为折线和多边形和圆的轮廓引入了自定义样式。 将笔触花样从实线(默认)更改为您选择的破折号,点和间隙。在折线和多边形中,您可以指定斜角或圆形关节类型以替换默认的固定斜角关节。您还可以将折线两端的上限从对接(默认)更改为方形或圆形上限,或指定要用作上限的自定义位图。 完整的API可以使用笔触图案,关节类型和开始/结束大写的样式,但不能在精简模式下使用。

请注意您需要使用Google Play Services 10.2或更高版本。因此,在build.gradle中,您需要添加:

dependencies {
    compile 'com.google.android.gms:play-services-maps:10.2.0'
}

您可以指定折线的描边图案但不能更改颜色,因此您需要在其上方绘制实线折线和虚线折线以达到所需的图案(考虑到你将绘制两条折线而不只是一条,这会影响性能):

List<LatLng> latLngs = new ArrayList<>();
// Add all your LatLngs to the List

// Draw a solid green polyline
mMap.addPolyline(new PolylineOptions()
        .addAll(latLngs)
        .color(Color.GREEN));

// Draw a dashed (60px spaced) blue polyline
List<PatternItem> dashedPattern = Arrays.asList(new Dash(60), new Gap(60));
mMap.addPolyline(new PolylineOptions()
        .addAll(latLngs)
        .pattern(dashedPattern)
        .color(Color.BLUE));

结果如下:

enter image description here

您可以找到有关新样式折线功能here的更多信息。

答案 1 :(得分:0)

Random rnd = new Random(); 
  int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));  

---每个lat lng循环并添加----

   mMap.addPolyline(new PolylineOptions()
  .add(new LatLng(lats, lons), new LatLng(late,lone))
  .width(5)
  .color(color)); 

根据您的要求更改颜色编码