I was trying to get latitude and longitude of center of the map. I am using Fragment to show map that is,
SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.mapID);
if (fm != null) {
googleMap = fm.getMap();
}
LatLng loc = googleMap.getCameraPosition().target;
I am printing this loc and i am getting value as 0.0, 0.0. I am not getting where i am going wrong.
I tried to use VisibleRegion
also to get latitude and longitude of center of map but even that did not help.
You are requesting the camera position when the map was not yet loaded, therefore the camera is pointing to 0.0, 0.0. Instead use this:
googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
Log.e("TAG", googleMap.getCameraPosition().target.toString());
}
});
Before you get these values, You must declare this Listener
or any Listener like this.
GoogleMap.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
@Override
public void onCameraIdle() {
double CameraLat = map.getCameraPosition().target.latitude;
double CameraLong = map.getCameraPosition().target.longitude;
}
});