Después de probar todas las respuestas anteriores en StackOverflow
Estoy publicando esta respuesta.
Estoy mostrando la ubicación en vivo de un conductor y una ruta desde esa ubicación hasta un destino específico. Lo que quiero es eliminar la polilínea antigua pronto, la ubicación en vivo del controlador cambia, pero no está sucediendo y está aumentando el número de polilíneas.
Aquí está el código donde estoy eliminando la polilínea pero no funciona.
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);
}
Prueba así.
// 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);
}
}
Lo he resuelto yo mismo. es porque eso function
estaba siendo llamado de otro call
debido a que polyline
instancia fue nula. Lo solucione guardando polyline
en SharedPrefrence
y recuperando ese valor nuevamente en la próxima llamada.
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
mMap.claro(); puede ayudar. Borrará todo el mapa.
– MathankumarK
23 de octubre de 2019 a las 11:12
Lo he intentado pero el problema es que también me está quitando los marcadores.
– Yawad Malik
23 de octubre de 2019 a las 11:16
use una llamada remove () en el objeto de polilínea.
-Sagar Nayak
23 oct 2019 a las 11:37
@SagarNayak mira el código de arriba, creo que lo he hecho
– Yawad Malik
23 oct 2019 a las 11:39
¡oh! Lo he comprobado ahora y no se ha impreso. creo que la polilínea es nula tal vez?
– Yawad Malik
23 de octubre de 2019 a las 11:43