我的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)}
答案 0 :(得分:0)
OnMapLoaded函数有帮助。谢谢。
这是我的代码,
map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
invokeApi();
}
});