首页 > 解决方案 > Android Google maps-v2 以前的折线未删除

问题描述

在尝试了所有以前的答案后,StackOverflow我发布了这个答案。

我正在显示驾驶员的实时位置以及从该位置到特定目的地的路径。我想要的是尽快删除旧的折线,驱动程序的实时位置会发生变化,但它并没有变,而且折线的数量正在增加。

这是我要删除折线但它不起作用的代码。

private void drawRouteOnMap(GoogleMap map, List<LatLng> positions) {
    PolylineOptions options = new PolylineOptions().width(12).color(Color.GREEN).geodesic(true);
    options.addAll(positions);

    if (polyline != null) {
        polyline.remove();
        Log.e("Old Poly", "Removed");
    }

    Log.e("Poly", "Added");
    polyline = mMap.addPolyline(options);
}

标签: androidgoogle-mapsgoogle-polyline

解决方案


像这样试试。

// decleare it globally
List<Polyline> polylines = new ArrayList<Polyline>();

private void drawRouteOnMap(GoogleMap map, List<LatLng> positions) {
    PolylineOptions options = new PolylineOptions().width(12).color(Color.GREEN).geodesic(true);
    for(Polyline polyline: polylines){
      polyline.remove();
    }
    polylines.clear();

    for(LatLng latlng: positions){
        options.add(latlng);
        polylines.add(mMap.addPolyline(options);
    }
}

推荐阅读