我正在Android应用上实现功能,该功能将从Firebase数据库中读取用户位置,然后在地图上为每个用户添加标记。
这是负责工作的功能。该方法还会添加正在从数据库中的用户读取位置的用户的位置。
public void updateMap(Location location) {
LatLng userLocation = new LatLng(location.getLatitude(), location.getLongitude());
mMap.clear();
saveLocationInDatabase(location);
final ArrayList<Marker> markers = new ArrayList<>();
markers.add(mMap.addMarker(new MarkerOptions().position(userLocation).title("Your Location")));
dbRef = FirebaseDatabase.getInstance().getReference().child("users");
dbRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot dsp : dataSnapshot.getChildren()) {
User user = dsp.getValue(User.class);
LatLng userLocation = new LatLng(Double.parseDouble(user.getLatitude()), Double.parseDouble(user.getLongitude()));
markers.add(mMap.addMarker(new MarkerOptions().position(userLocation).title(user.fullName + " location")));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.i("Info", "" + databaseError.getMessage());
}
});
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Marker marker : markers) {
builder.include(marker.getPosition());
}
final int padding = 120; // offset from edges of the map in pixels
LatLngBounds bounds = builder.build();
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, padding);
mMap.moveCamera(cameraUpdate);
mMap.animateCamera(cameraUpdate);
}
有什么问题?
我尝试过什么?
mMap.setPadding(30,30,30,30);
,但这也不行。那么我怎么能做到这一点。要求是要在地图上显示的所有标记。
提前致谢。
修改