从googleMap.getCameraPosition()。target获取纬度经度0.0

时间:2014-08-25 12:26:35

标签: android google-maps google-maps-markers google-maps-android-api-2

我试图获得地图中心的纬度和经度。我正在使用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来获取地图中心的纬度和经度,但即使这样也无济于事。

2 个答案:

答案 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;

            }
        });