如何在Android中通过谷歌地图绘制平滑的(没有任何中断的连接线)?

如何在Android中通过谷歌地图绘制平滑的(没有任何中断的连接线)?,android,google-maps,Android,Google Maps,我正在Android上构建一个路径跟踪应用程序。此特定活动将获得职位,无论何时我获得职位,我都会将最后一个点与当前点连接起来。有了这个,我得到了一条路,但它在关节处并不平坦 A是我得到的东西。 B是我想要达到的目标 A B 问题是因为我画的线有两个点。google绘制3个点时,关节连接正确。我正在寻找一种方法,而不是画3点而不是2点 我正在向多段线添加点 PolylineOptions polylineOptions = new PolylineOptions(); polylineOption

我正在Android上构建一个路径跟踪应用程序。此特定活动将获得职位,无论何时我获得职位,我都会将最后一个点与当前点连接起来。有了这个,我得到了一条路,但它在关节处并不平坦

A是我得到的东西。 B是我想要达到的目标

A

B

问题是因为我画的线有两个点。google绘制3个点时,关节连接正确。我正在寻找一种方法,而不是画3点而不是2点

我正在向多段线添加点

PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.add(lastPosition);
polylineOptions.add(currentPosition);
polylineOptions.color(Color.BLUE);
polylineOptions.width(8);

mMap.addPolyline(polylineOptions);
我还尝试设置polylineOptions.jointType(jointType.ROUND),但没有多大改进。

影响一条多段线的线段,而不是单独的多段线。因此,不要用两点线绘制路径-将整个路径绘制为一条多段线。诸如此类:

// add polyline to map (once) and save reference to it in polyLine variable
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.add(lastPosition);
polylineOptions.add(currentPosition);
polylineOptions.color(Color.BLUE);
polylineOptions.width(8);
Polyline polyLine = mMap.addPolyline(polylineOptions);

...
// every time when currentPosition updated
List<LatLng> polyLinePoints = polyLine.getPoints();   // get polyline points
polyLinePoints.add(currentPosition);                  // add currentPosition to polyline points
polyLine.setPoints(polyLinePoints);                   // update polyline points
//将多段线添加到地图(一次)并将对它的引用保存在polyline变量中
PolylineOptions PolylineOptions=新的PolylineOptions();
polylineOptions.add(lastPosition);
polylineOptions.add(当前位置);
polylineOptions.color(color.BLUE);
多段线选项。宽度(8);
Polyline Polyline=mMap.addPolyline(Polyline选项);
...
//每次当currentPosition更新时
列出polyLinePoints=polyLine.getPoints();//获取多段线点
多段线点。添加(当前位置);//将currentPosition添加到多段线点
多段线。设定点(多段线点);//更新多段线点

对于两个点,您应该使用
startCap
SquareCap
,它“在超出起始点的一半冲程宽度后被平方”。默认的
startCap
ButtCap
,它“恰好在开始时被平方”。谢谢。这是一个不错的选择。不幸的是,我不能使用它,因为我的地图版本不支持它!谢谢但这对我不起作用,因为我的版本不支持设置点()。@raj-Hmm,这很奇怪。由类“从盒子中”支持。请仔细检查您的代码:可能您在错误的对象上调用了设置点()。
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.add(lastPosition);
polylineOptions.add(currentPosition);
polylineOptions.color(Color.BLUE);
polylineOptions.width(8);

mMap.addPolyline(polylineOptions);
// add polyline to map (once) and save reference to it in polyLine variable
PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.add(lastPosition);
polylineOptions.add(currentPosition);
polylineOptions.color(Color.BLUE);
polylineOptions.width(8);
Polyline polyLine = mMap.addPolyline(polylineOptions);

...
// every time when currentPosition updated
List<LatLng> polyLinePoints = polyLine.getPoints();   // get polyline points
polyLinePoints.add(currentPosition);                  // add currentPosition to polyline points
polyLine.setPoints(polyLinePoints);                   // update polyline points