【发布时间】:2021-10-18 22:03:32
【问题描述】:
我在 Android 中有一个谷歌地图屏幕。我想将相机移动并缩放到某个位置,并在动画完成后获取边界和缩放级别。
这就是我所拥有的
val location = LatLng(33.7701, -118.1937)
val DEFAULT_ZOOM_LEVEL = 13F
googleMap.animateCamera(
CameraUpdateFactory.newLatLngZoom(location, DEFAULT_ZOOM_LEVEL),
object: GoogleMap.CancelableCallback{
override fun onFinish() {
val visibleRegion = googleMap.projection.visibleRegion
Timber.i("zoom level is ${googleMap.cameraPosition.zoom}")
}
override fun onCancel() {
Timber.i("Animate Camera Canceled")
}
}
)
}
大多数时候它运行良好。 onFinish() 木材原木缩放级别为 13.0
但偶尔,onFinish() 木材原木缩放级别为 2.0 这意味着动画尚未完成,地图尚未放大。
我尝试了Issue with Android's GoogleMap.CancelableCallback() 的建议 但是,设置 durationMs 参数只会减慢动画的速度,并不能确保动画完成后调用 onFinish()。
为什么会这样?这是 google map Android 中的错误吗?
我正在使用 com.google.android.gms:play-services-maps:17.0.1 引用 https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap#animateCamera(com.google.android.gms.maps.CameraUpdate,%20com.google.android.gms.maps.GoogleMap.CancelableCallback)
【问题讨论】:
-
更新这确实是Android Google Map SDK issuetracker.google.com/issues/200513914?pli=1中的一个错误
标签: android google-maps google-maps-android-api-2