gpt4 book ai didi

android-maps-v2 - Google Maps Android API v2 getVisibleRegion() 返回 0

转载 作者:行者123 更新时间:2023-12-04 06:57:17 24 4
gpt4 key购买 nike

我正在使用新的 Google Maps Android API v2,需要检测屏幕 View 角落的 latlng 坐标。我使用 mMap.getProjection().getVisibleRegion() 来执行此操作,这在我第一次加载程序时工作正常,但如果我离开程序然后重新打开它(通过后退按钮或主页按钮)getVisibleRegion () 返回全为 (0.0, 0.0) 的 latlng 坐标。我有一个解决方法,当我第一次打开程序时,我将 VisibleRegion 对象保存为应用程序类中的全局对象,但这似乎是个坏主意。任何人都明白为什么重新打开时纬度坐标变为零(但不是空)?谢谢!

编辑:有时初始加载会给出 (0.0, 0.0) 可见区域,因此我的解决方法不可行。使用 getProjection().fromScreenLocation(point) 也会返回 0。

最佳答案

好的,我想我解决了:我猜对了: map 不可见,因此也没有可见区域(换句话说,从 0,0,0,0 到 0,0,0,0 的区域)。类似于这个问题

Android Google Maps API v2 calling getProjection from onResume

我在 map 上附加了一个 onCameraChanged-Listener。每次移动 map (或相机可用 => 有一个可见区域)时,都会调用此方法。

private void initMap() {
mMap = getMap();

if (mMap != null) {
try {

mMap.setLocationSource(this);
mMap.setOnMarkerClickListener(this);
mMap.setOnCameraChangeListener(new OnCameraChangedListener() {
@Override
public void onCameraChange(CameraPosition cameraPosition) {
Log.d(TAG, "onCameraChange");
updateMapItems();
}
}
MapsInitializer.initialize(getActivity());

...
}
}
}

这个监听器确保你有一个 visibleRegion。

更新:由于Google Maps API v2的新更新,有一个回调onMapReady()。我还没有使用它,但它似乎正是这个问题的目的:https://developer.android.com/reference/com/google/android/gms/maps/OnMapReadyCallback.html

关于android-maps-v2 - Google Maps Android API v2 getVisibleRegion() 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14574839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com