【问题标题】:getting latitude longitude 0.0 from googleMap.getCameraPosition().target从 googleMap.getCameraPosition().target 获取纬度经度 0.0
【发布时间】:2014-10-18 14:31:47
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    您在地图尚未加载时请求相机位置,因此相机指向 0.0, 0.0。而是使用这个:

    googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
        @Override
        public void onMapLoaded() {
            Log.e("TAG", googleMap.getCameraPosition().target.toString());
        }
    });
    

    【讨论】:

    • 没错。那行得通,谢谢。还有一件事是有任何监听器,所以当用户拖动地图时,我会从地图中心得到很长的距离。
    • @NaveenKumar 你可以尝试使用setOnCameraChangeListener 并在那里重新获取纬度。
    【解决方案2】:

    在你得到这些值之前,你必须声明这个监听器

    • setOnCameraMoveListener : 当相机移动时。

    • setOnCameraIdleListener : 在 ceme 之后

    或任何这样的监听器。

    GoogleMap.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
                @Override
                public void onCameraIdle() {
                    double CameraLat = map.getCameraPosition().target.latitude;
                    double CameraLong = map.getCameraPosition().target.longitude;
    
                }
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 2010-12-02
      • 2019-11-05
      相关资源
      最近更新 更多