Невозможно удалить маркер с того места, где он был создан. Все отлично работает для "не Dynami c". Маркер "meetingPlaceMarker" является глобальным. Я попытался сделать его невидимым, установив альфа в 0 и сделав его нулевым. Я искал и нигде не мог найти ответ.
private void addMarkerListener(){
FirebaseDatabase.getInstance().getReference().child("users").child(userId).child("meetingPoint").
addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()) {
if(dataSnapshot.child("status").getValue().toString().equals("requested") &&
dataSnapshot.child("requestedBy").getValue().toString().equals(Data.matchId)){
DatabaseReference myDb = FirebaseDatabase.getInstance().getReference().child("users").
child(userId).child("meetingPoint");
GeoFire myGeoFire = new GeoFire(myDb);
myGeoFire.getLocation("coordinates", new LocationCallback() {
@Override
public void onLocationResult(String key, GeoLocation location) {
if (location != null) {
LatLng latLng = new LatLng(location.latitude, location.longitude);
meetingPlaceMarker = mMap.addMarker(new MarkerOptions()
.position(latLng).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)));
acceptMarkerLayout.setVisibility(View.VISIBLE);
markerLayout.setVisibility(View.GONE);
addMarkerButton.setText(R.string.add_marker);
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.animateCamera(CameraUpdateFactory.zoomTo(14.3f));
// HERE I CAN EASILY REMOVE MARKER
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
} else if(dataSnapshot.child("status").getValue().toString().equals("accepted") &&
dataSnapshot.child("requestedBy").getValue().toString().equals(userId)) {
meetingPlaceMarker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
mMap.moveCamera(CameraUpdateFactory.newLatLng(meetingPlaceMarker.getPosition()));
mMap.animateCamera(CameraUpdateFactory.zoomTo(14.3f));
} else if(dataSnapshot.child("status").getValue().toString().equals("rejected") &&
dataSnapshot.child("requestedBy").getValue().toString().equals(userId)) {
meetingPlaceMarker.remove();
markerLayout.setVisibility(View.VISIBLE);
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Здесь я не могу
public void rejectMarker(View view){
markerLayout.setVisibility(View.VISIBLE);
FirebaseDatabase.getInstance().getReference().child("users").child(userId).child("meetingPoint").
child("status").setValue("rejected");
FirebaseDatabase.getInstance().getReference().child("users").child(Data.matchId).child("meetingPoint").
child("status").setValue("rejected");
acceptMarkerLayout.setVisibility(View.GONE);
meetingPlaceMarker.remove(); //NOTHING HAPPENS AFTER CALLING IT
}