GoogleMap(Android)投影可见区域在方向更改后未更新?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GoogleMap(Android)投影可见区域在方向更改后未更新?相关的知识,希望对你有一定的参考价值。

[当我的SupportMapFragment onCreateView()方法被调用时,我阅读了地图的

getProjection().getVisibleRegion().latLngBounds.northeast.x

getProjection().getVisibleRegion().latLngBounds.southwest.y

第一次启动应用程序(纵向模式)时,我得到x = 720y = 1230。但是,将方向更改为横向后,我又看到了相同的值。

返回纵向模式会产生x = 1280y = 670(这是我希望从横向模式得到的结果,然后返回横向模式会再次给出第一个数字。

就像投影总是在后面改变方向。

任何主意出了什么问题,以及如何解决?

答案
这里的问题是onConfigurationChanged(我假设您要检查x和y的值)被称为

之前 GoogleMap可以更新其投影。

我发现此问题的一种方法是触发0%的虚拟缩放,完成后将调用onCameraIdle(使用更新的投影)


添加OnCameraIdleListener:

// add this to your imports import com.google.android.gms.maps.GoogleMap.OnCameraIdleListener // add this to your map-using activity class MapsActivity implements ..., OnCameraIdleListener ...

然后,在您的地图使用活动中:

@Override public void onCameraIdle() // ... do something with getProjection() ... @Override public void onConfigurationChanged(Configuration newConfig) super.onConfigurationChanged(newConfig); // dummy zoom to trigger onCameraIdle with *correct* orientation mMap.animateCamera( CameraUpdateFactory.zoomBy(0f) );

以上是关于GoogleMap(Android)投影可见区域在方向更改后未更新?的主要内容,如果未能解决你的问题,请参考以下文章

android中可见区域外目标注释的方向

如何单击标记下方的 GoogleMap 多边形?

Google Map中的瓦片

无法在不单击标记的情况下在 GoogleMap 中显示信息窗口 - GoogleMap Cluster Android

Android在GoogleMap(百度地图)实现自定义指南针旋转与回正功能

Android在GoogleMap(百度地图)实现自定义指南针旋转与回正功能