在我的 Google map 初始化后,我试图从设备屏幕上的可见区域获取 LatLngBounds
。但是我只收到 0 值。我的猜测是即使在调用 OnMapReady
之后, map 实际上还没有加载。我四处寻找检查 map 初始化的更好方法,但一无所获。我如何确保收到正确的数据?
初始化 map
public void initMap(){
MapFragment map = (MapFragment) getFragmentManager().findFragmentById(R.id.mapFragment);
map.getMapAsync(this);
}
map 就绪回调
@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();
}
}
获取边界
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)}
最佳答案
OnMapLoaded 函数有帮助。谢谢。
这是我的代码,
map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
invokeApi();
}
});
关于android - getProjection().getVisibleRegion().latLngBounds; onMapReady 后返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31548243/