Android Google maps-v2 предыдущая полилиния не удаляется - PullRequest
0 голосов
/ 23 октября 2019

После попытки всех предыдущих ответов на 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);
}

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Попробуй вот так.

// 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);
    }
}
0 голосов
/ 24 октября 2019

Я решил это сам. Это потому, что function вызывался из другого call, из-за которого экземпляр polyline был нулевым. Решил его, сохранив polyline в SharedPrefrence и снова получив это значение при следующем вызове.

...