0
我的問題似乎是多餘的,但我無法找到我的問題的確切答案。我有2個應用程序,一個是向Firebase發送位置的用戶,另一個是從Firebase獲取位置並創建標記的用戶。每當用戶改變其位置時,標記不會更新得最差,前面的標記仍然可以在地圖上看到,並且它添加了另一個標記。我該如何解決這個問題?爲了進一步理解我的問題,這裏是我的代碼。如果標記不等於null,那麼如何刪除標記並創建一個新標記?
這是第二個應用程序:獲得位置
passRef = new Firebase(Config.FIREBASE_URL_PASSENGER);
passRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
if (snapshot.child("latitude").exists() && snapshot.child("longitude").exists() && snapshot.child("destination").exists()) {
passUsername = snapshot.child("name").getValue().toString();
numOfPassenger = Integer.parseInt(snapshot.child("numberOfSeats").getValue().toString());
//getting the passenger's current location
locLatPass = Double.valueOf(snapshot.child("latitude").getValue().toString());
locLongPass = Double.valueOf(snapshot.child("longitude").getValue().toString());
dummyLocLatPass = Double.valueOf(snapshot.child("latitude").getValue().toString());
dummyLocLongPass = Double.valueOf(snapshot.child("longitude").getValue().toString());
if (locLatPass.equals("")) {
locLatPass = dummyLocLatPass;
}
if (locLongPass.equals("")) {
locLongPass = dummyLocLongPass;
}
latlngpass = new LatLng(locLatPass, locLongPass);
passLocMarkerOptions = new MarkerOptions();
passLocMarkerOptions.position(latlngpass);
passLocMarkerOptions.title(passUsername + "'s Location");
passLocMarkerOptions.icon(BitmapDescriptorFactory.fromResource(R.mipmap.pass_location));
passLocationMarker = mMap.addMarker(passLocMarkerOptions);
}