android google maps在使用GoogleMap.AnimateCamera()时未加载地图
谷歌地图文档 根据,为了将CameraUpdate应用于地图,我们可以立即移动相机(使用GoogleMap.moveCamera(CameraUpdate)) 或者(通过使用GoogleMap.animateCamera(CameraUpdate))平滑地设置相机动画 我所做的android google maps在使用GoogleMap.AnimateCamera()时未加载地图,android,google-maps-android-api-2,Android,Google Maps Android Api 2,谷歌地图文档 根据,为了将CameraUpdate应用于地图,我们可以立即移动相机(使用GoogleMap.moveCamera(CameraUpdate)) 或者(通过使用GoogleMap.animateCamera(CameraUpdate))平滑地设置相机动画 我所做的 onDeviceHeadingChange(){ if(!cameraIsMoving){ cameraIsMoving = true val cameraPosition = Camera
onDeviceHeadingChange(){
if(!cameraIsMoving){
cameraIsMoving = true
val cameraPosition = CameraPosition.builder(mMap.cameraPosition)
.target(myLatLng)
.bearing(myBearing)
.tilt(50f)
.build()
val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
mMap.animateCamera(cameraUpdate, 500, object: GoogleMap.CancelableCallback{
override fun onFinish() {
cameraIsMoving = false
}
override fun onCancel() {
cameraIsMoving = false
}
})
}
}
所以我开始使用GoogleMap.moveCamera(CameraUpdate)。地图可以很好地载入。但是,当我使用GoogleMap.animateCamera(CameraUpdate)时,地图无法加载。我看到的只是一个灰色的屏幕或模糊的地图。除非我手动移动地图,否则地图将被完全加载或再次变得清晰
谁能告诉我是什么问题吗?使用GoogleMap.animateCamera()时是否需要其他东西
已更新:
我刚刚发现我的代码中有一个很大的错误,很抱歉我没有把它描述得足够清楚。
我使用GMap.animateCamera()在设备的标题发生变化时更新相机(使用旋转传感器…)。这种情况发生得太快,因此cameraAnimation()永远无法完成其工作。这就是为什么地图也不能完全加载的原因
onDeviceHeadingChange(){
val cameraPosition = CameraPosition.builder(mMap.cameraPosition)
.target(myLatLng)
.bearing(myBearing)
.tilt(50f)
.build()
val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
// the map will be loaded just fine with this method
// mMap.moveCamera(cameraUpdate)
// the problem appeared when I update camera with aniteCamera()
mMap.animateCamera(cameraUpdate, 500, null)
}
使用animateCamera时映射:
使用moveCamera时进行贴图:
已解决
onDeviceHeadingChange(){
if(!cameraIsMoving){
cameraIsMoving = true
val cameraPosition = CameraPosition.builder(mMap.cameraPosition)
.target(myLatLng)
.bearing(myBearing)
.tilt(50f)
.build()
val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition)
mMap.animateCamera(cameraUpdate, 500, object: GoogleMap.CancelableCallback{
override fun onFinish() {
cameraIsMoving = false
}
override fun onCancel() {
cameraIsMoving = false
}
})
}
}
这让我想到一个新问题
为什么GoogleMap.moveCamera()可以处理这些调用?但是GoogleMap.animateCamera()不能吗?
.builder(mMap.cameraPosition)…
更改为.builder()…
onMapReady
callback之后调用此方法LatLng initialLocation = new LatLng(latitude, longitude);
gmap.animateCamera(CameraUpdateFactory.newLatLngZoom(initialLocation, 18.0f));
我用它来用LatLng将地图动画化到一个特定的位置,我从来没有尝试过倾斜,不过你在清单中添加了你的gMaps API键了吗它看起来像这样`` post your manifest.xmlfile@trinadhthatakula是的。这就是为什么GoogleMap.moveCamera()可以直接加载地图fine@amin舱单上有很多东西。但与谷歌地图相关的只是谢谢你的回答。我试过了,但没有成功。是的,可以肯定的是,这个方法只能在onMapReady()callback之后调用。谢谢兄弟,但它不起作用。我清除了应用程序捕获并重新启动应用程序。我只看到一个灰色的屏幕。除非我开始手动移动地图,否则地图不会加载。