У меня возникли проблемы. Я извлекаю свою широту и долготу в Realtime Firebase и создаю маркер, но каждый раз, когда широта и долгота имеют обновление, он создаст еще один маркер.Удалить предыдущий маркер
Как удалить предыдущий маркер? Вот мой код:
passRef = new Firebase(Config.FIREBASE_URL_PASSENGER);
passRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapShot : dataSnapshot.getChildren()) {
for (int cnt = 0; cnt <= dataSnapshot.getChildrenCount(); cnt++) {
if (snapShot.child("latitude").exists() && snapShot.child("longitude").exists() && snapShot.child("destination").exists()) {
passUsername = snapShot.child("name").getValue().toString();
//getting the passenger's current location
locLatPass = Double.valueOf(snapShot.child("latitude").getValue().toString());
locLongPass = Double.valueOf(snapShot.child("longitude").getValue().toString());
latlngpass = new LatLng(locLatPass, locLongPass);
MarkerOptions passLocMarkerOptions = new MarkerOptions();
passLocMarkerOptions.position(latlngpass);
passLocMarkerOptions.title(passUsername+ "'s Location");
passLocMarkerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
passLocationMarker = mMap.addMarker(passLocMarkerOptions);
} else {
}
}
Toast.makeText(MapsActivity.this, "Passenger Username" + passUsername + " latitude" + locLatPass + "Longitude" + locLongPass, Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
У каждого ребенка есть широта и долгота. поэтому каждый раз, когда есть обновление даже в одном ребенке, все мои маркеры будут обновляться, что вы имеете в виду? –
map.clear() очистить всю полилинию и все маркеры. –
Вы не можете удалить один маркер с карты. Вы должны удалить все контакты и повторно нарисовать все с обновленным. – EEJ