。getProjection()getVisibleRegion()的LatLngBounds。在onMapReady之后返回0

时间:2015-07-21 19:45:26

标签: android google-maps

我的Google地图初始化后,我正试图从设备屏幕上的可见区域获取LatLngBounds。但是我只收到0值。我的猜测是,即使在调用OnMapReady之后,地图也未实际加载。我一直在寻找一种更好的方法来检查地图初始化并找不到任何东西。我如何确保收到正确的数据?

INITIALIZE MAP

public void initMap(){
    MapFragment map = (MapFragment) getFragmentManager().findFragmentById(R.id.mapFragment);
    map.getMapAsync(this);
}

关于地图就绪回复

@Override
public void onMapReady(GoogleMap googleMap) {    

    try {
        if (googleMap != null) {
            mGoogleMap = googleMap;
            mGoogleMap.setOnMarkerClickListener(this);
            mGoogleMap.setOnCameraChangeListener(this);
            mGoogleMap.setOnMapClickListener(this);
            mGoogleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
            search();
        }

    } catch (Exception exception) {
        mUtility.getThemedAlert(this,
                getResources().getString(R.string.error_google_maps),
                getResources().getString(R.string.unable_build_google_maps)).show();
    }
}

获得BOUNDS

public void search() {
    LatLngBounds bounds = mGoogleMap.getProjection().getVisibleRegion().latLngBounds;
    Log.e("TEST", bounds.toString());
}

日志输出

E/TEST﹕ LatLngBounds{southwest=lat/lng: (0.0,0.0), northeast=lat/lng: (0.0,0.0)}

1 个答案:

答案 0 :(得分:0)

OnMapLoaded函数有帮助。谢谢。

这是我的代码,

map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
                @Override
                public void onMapLoaded() {

                    invokeApi();
                }
});