如何在Android的Google Map上绘制平滑的线(无中断连接的线)?

时间:2019-05-06 14:56:04

标签: android google-maps

我正在Android上构建路径跟踪应用程序。此特定活动将获得位置,并且每当我获得位置时,我都会将最后一个点与当前点连接起来。有了这个,我就可以走了,但是在关节处却并不顺利。

我正在得到一个东西。 B是我要达到的目标。

A

   ________________
  |________________
|  |
|  |

B

 ________________
|________________
|  |
|  |

问题是因为我绘制了2个点的线。当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),但没有太大改进。

1 个答案:

答案 0 :(得分:0)

JointType影响一条折线的段,而不是单独的折线。因此,请勿绘制包含2点线的路径-将整个路径绘制为一条多段线。像这样:

// 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