我试图获得地图中心的纬度和经度。我正在使用Fragment来显示地图,
SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.mapID);
if (fm != null) {
googleMap = fm.getMap();
}
LatLng loc = googleMap.getCameraPosition().target;
我正在打印这个loc,我的价值为0.0,0.0。我没有得到我错的地方。
我也尝试使用VisibleRegion
来获取地图中心的纬度和经度,但即使这样也无济于事。
答案 0 :(得分:5)
当地图尚未加载时,您正在请求摄像机位置,因此摄像机指向0.0,0.0。而是使用它:
googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
Log.e("TAG", googleMap.getCameraPosition().target.toString());
}
});
答案 1 :(得分:1)
在获得这些值之前,您必须声明此侦听器
setOnCameraMoveListener:当相机移动时。
setOnCameraIdleListener:ceme之后
或任何类似的听众。
GoogleMap.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
@Override
public void onCameraIdle() {
double CameraLat = map.getCameraPosition().target.latitude;
double CameraLong = map.getCameraPosition().target.longitude;
}
});