【发布时间】:2017-02-10 16:20:23
【问题描述】:
我遇到了麻烦。我在 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) {
}
});
【问题讨论】:
标签: android google-maps firebase firebase-realtime-database google-maps-markers