问题
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.
回答1:
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());
}
});
回答2:
Before you get these values, You must declare this Listener
setOnCameraMoveListener : while camera is moving.
setOnCameraIdleListener : after ceme
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;
}
});
来源:https://stackoverflow.com/questions/25485941/getting-latitude-longitude-0-0-from-googlemap-getcameraposition-target