Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps Google Map Lite模式moveCamera不调用SetOnCameraireListener_Google Maps_Kotlin_Android Maps V2 - Fatal编程技术网

Google maps Google Map Lite模式moveCamera不调用SetOnCameraireListener

Google maps Google Map Lite模式moveCamera不调用SetOnCameraireListener,google-maps,kotlin,android-maps-v2,Google Maps,Kotlin,Android Maps V2,地图显示正确,然后在移动相机之前检查地图是否已完全加载。然后,地图显示边界定义的正确区域。但是在移动之后,SetOnCameraideListener从未像预期的那样被调用。下面是问题的代码 map.setOnMapLoadedCallback(GoogleMap.OnMapLoadedCallback { Log.e(tag, "setOnMapLoadedCallback") //set camera bounds map.moveCamera(C

地图显示正确,然后在移动相机之前检查地图是否已完全加载。然后,地图显示边界定义的正确区域。但是在移动之后,SetOnCameraideListener从未像预期的那样被调用。下面是问题的代码

map.setOnMapLoadedCallback(GoogleMap.OnMapLoadedCallback {
    Log.e(tag, "setOnMapLoadedCallback")
    //set camera bounds
    map.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 100))
})

map.setOnCameraIdleListener {
    //create snapshot
    Log.e(tag, "setOnCameraIdleListener")
}
我正在使用lite模式的地图,根据它看起来应该得到支持,但我找不到任何明确的

我会错过什么

更新:

下面是我如何在SDK中解决这个bug的

创建了定义为回调的val

private val snapshotReadyCallback : GoogleMap.SnapshotReadyCallback = GoogleMap.SnapshotReadyCallback {
    SaveSnapshot(it)
}
“它”是地图的位图。您可以直接在回调中进行保存,但我调用了一个函数

在setOnMapLoadedCallback中,执行了以下操作

gmap?.setOnMapLoadedCallback {
    gmap?.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 100))
    //2 seconds lag to ensure camera has had time to move
    //since camera move override doesnt work in setOnMapLoadedCallback
    handler.postDelayed({ // Do something after 2s = 2000ms
      gmap?.snapshot(snapshotReadyCallback)
    }, 2000)
}

添加抓取快照的延迟可以让相机有足够的时间移动。然后,它将调用snapshotReadyCallback,然后调用执行实际保存的函数。

看到同样的行为,您是否找到了解决方案?@GrantKamin我做了一个变通。我确实向谷歌提交了一个关于这个问题的bug,但它不见了。