Estoy trabajando con el API de Google maps, mas en especifico con los marcadores logro colocarlos pero no removerlos. Explico un poco el código:
Tengo esta función llamada origenDestino el cual lo que hace en general es agregar dos marcadores al mapa, como verán tengo un if el cual valida que si mi Array (meto los dos marcadores en un Array) ya esta lleno, es decir que si tiene los dos marcadores entonces no haga nada, esto para evitar que el usuario pongo mas de dos marcadores. PERO si el usuario da click de nuevo en el botón que llama la función y este ya tiene los dos marcadores, es decir ya esta lleno el Array entonces no agregara dos marcadores al contrario (else) borrara los marcadores y limpia el array (por si vuelve a dar clic agregue de nuevo los dos marcadores).
public void origenDestino(View view) {
Marker origenRandom = null;
Marker destino = null;
if (markers.size() <= 1) {
origenRandom = mapa.addMarker(new MarkerOptions().position(
new LatLng(mapa.getMyLocation().getLatitude(), mapa.getMyLocation().getLongitude()))
.title("Origen").draggable(true)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN)));
markers.add(origenRandom);
destino = mapa.addMarker(new MarkerOptions().position(new LatLng(21.1535404, -86.8435398))
.title("Destino")
.draggable(true)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
markers.add(destino);
}else{
origenRandom.Remove();
destino.Remove();
marker.clear();
}
El problema es simple, así como tengo el código no me esta funcionando los .Remove(); pero si el Clear(); del array, porque si vuelvo a llamar la función agrega otros dos marcadores.
El código esta mal? o que podría estar fallando.
Cabe aclarar que el Remove() si funciona cuando lo pongo seguido mapa.addMarker(), pero solo así me ha funcionado.