gpt4 book ai didi

android - 在 Maps V2 上绘制多色折线

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:54:41 24 4
gpt4 key购买 nike

我通过以下方式在我的 map 上绘制了一条纯色折线,效果很好:

PolylineOptions polyLine = new PolylineOptions();  
polyLine.width(5);
polyLine.color(Color.RED);
polyLine.geodesic(true);
for (int i = 0; i < speed.length; i++) {
polyLine.add(new LatLng(lat, lng));
}

map.addPolyline(polyLine);

现在我想在不同点之间绘制一条具有不同颜色的折线,具体取决于这两点之间的速度。

似乎没有一种简单的方法可以做到这一点。

我指的是这个问题:draw polylines with different colors on v2 maps ,并且我可以一个接一个地添加多个 PolylineOptions,但我认为这不是一种有效的方法,因为我在一个简单的数据集中有超过 2000 个点要绘制。

有更好的做法吗?

理想的实现方式是 Nike+ 应用如何在 map 上绘制线条:

Nike+ Screenshot from Google Play

非常感谢任何帮助。

提前致谢!

最佳答案

我只是找到了一种使用 OptionsLines 的方法,实际上是两个 OptionsLines。我将此函数与 gpx 文件一起使用,这就是为什么会有个人对象 TRKPT。

 int size = listPoints.size();
PolylineOptions optline = new PolylineOptions();
PolylineOptions optline2 = new PolylineOptions();
optline.geodesic(true);
optline.width(10);
optline2.geodesic(true);
optline2.width(10);
for (int i = 0; i < size - 1; i++) {

TRKPT pointD = listPoints.get(i);
TRKPT pointA = listPoints.get(i + 1);
int green = (int) ((float) 255 - (float) (i / (float) size) * (float) 255);
int red = (int) ((float) 0 + (float) (i / (float) size) * (float) 255);

optline.add(new LatLng(pointD.getLat(), pointD.getLon()), new LatLng(pointA.getLat(), pointA.getLon()));
optline2.add(new LatLng(pointD.getLat(), pointD.getLon()), new LatLng(pointA.getLat(), pointA.getLon()));

if(i%2 == 0){
optline.color(Color.rgb(red, green, 0));
mMap.addPolyline(optline);
optline = new PolylineOptions();
optline.geodesic(true);
optline.width(10);
}
else{
optline2.color(Color.rgb(red, green, 0));
mMap.addPolyline(optline2);
optline2 = new PolylineOptions();
optline2.geodesic(true);
optline2.width(10);
}
}

现在你有一条漂亮的线条,从绿色到红色渐变。

关于android - 在 Maps V2 上绘制多色折线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22235237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com