我有两个位置,我需要在这两个位置之间绘制两条折线,我完成了在这些位置之间绘制折线。
问题是,折线是一种颜色,但由于要求我必须绘制两种不同颜色的折线,如下所示: -
如果有人有一些有意义的代码段或对此问题的一些建议...提前致谢
答案 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));
结果如下:
您可以找到有关新样式折线功能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));
根据您的要求更改颜色编码