如何使用 Google Maps Android API v2 绘制动态线(路线)

Kri*_*ris 5 android google-maps-android-api-2

我想知道使用 Google Maps API v2 在地图上绘制动态路线的最佳做法是什么。我想要一张能够在用户移动时延长路线的地图。使用 Polyline 和 PolylineOptions 似乎有明显的解决方案。但是实例化折线后,我找不到一种简单的方法来添加点。绘制折线是这样的:

PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.add(POINT1, POINT2, POINT3);
Polyline line = googleMap.addPolyline(polylineOptions);
Run Code Online (Sandbox Code Playgroud)

但是在我将这条线传递给 GoogleMap 之后,我无法向它添加任何新点。就像是

polylineOptions.add(POINT1, POINT2, POINT3);
Run Code Online (Sandbox Code Playgroud)

不会向我的路线添加任何内容。

我可以添加完整的新折线。但难道没有一种方法可以延长现有的时间吗?我找到了一种方法,获取折线的所有点,添加新点,然后将它们写回线:

List<LatLng> points = line.getPoints();
points.add(POINT4);
line.setPoints(points);
Run Code Online (Sandbox Code Playgroud)

但对我来说似乎很麻烦。有任何想法吗?

qub*_*ubz 0

查看文档,似乎polylineOptions.add(LatLng)googleMap.addPolyline(polylineOptions)方法返回该polylineOptions对象。第一个方法还将返回polylineOptions 添加到末尾的点。

我认为您必须再次添加polylineOptionsgoogleMap.addPolyline(polylineOptions)googleMap.clear()第二次添加之前使用。像这样的东西:

polylineOptions = googleMap.addPolyline(polylineOptions);
// googleMap.clear();
googleMap.addPolyline(polylineOptions.add(point));
Run Code Online (Sandbox Code Playgroud)

  • 同意这种方式似乎是可行的。但是,是否有一种更简单的方法可以在 PolylineOptions 传递到 GoogleMap 之后**向折线添加一个点?使用clear(),然后将旧的PolylineOption与新点一起添加,从性能角度来看似乎是一个坏主意。 (2认同)