gpt4 book ai didi

android - 如何检测谷歌地图服务上的 moveCamera 完成?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:48:49 27 4
gpt4 key购买 nike

我想在 moveCamera 完成后拍摄快照。

我对 Googlemap 对象同时使用了 onCamerachange() 和 onMapLoaded() 函数,

但是这个回调处理程序的时间不符合我的 Intent 。

我想把相机移到我想要的地方,当加载 map 完成后,想截图。

你们谁知道我该怎么做?

谢谢。

============================================= =====

+我的解决方案

实际上,我想实现javascript 的google map API 支持的tilesloaded() 回调函数。但是,结果,没有完全完成该功能的功能。

OnMapLoaded() 回调函数仅在 map 首次加载时调用一次。

在加载所有图 block 之前调用 OnCameraChanged() 或 OnCancallableCallback。

所以我实现了如下源码

...
mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 10), this);
...
@Override
public void onFinish() {
mapFragment.getMapAsync(this);
}
..
@Override
public void onMapReady(GoogleMap googleMap) {
// TODO Auto-generated method stub
mMap = googleMap;// Add a marker in Sydney and move the camera
mMap.setOnMapLoadedCallback(this);
}

现在,当相机移动时,onMapLoaded() 总是被调用。

谢谢大家

最佳答案

你可以实现这个:

mMap.animateCamera(CameraUpdateFactory.zoomTo(16), 3000, new GoogleMap.CancelableCallback() {
@Override
public void onFinish() {
//Here you can take the snapshot or whatever you want
}

@Override
public void onCancel() {

}
});

此方法的最详细形式 GoogleMap.animateCamera(cameraUpdate, duration, callback) 提供三个参数:

相机更新

描述相机移动位置的 CameraUpdate。打回来一个实现 GoogleMap.CancellableCallback 的对象。这个用于处理任务的通用接口(interface)定义了两个方法 onCancel()onFinished()。对于动画,在以下情况下会调用这些方法:

onFinish()

如果动画在没有中断的情况下完成,则调用。

onCancel()

如果动画因调用 stopAnimation() 或开始新的相机移动而中断,则调用。

或者,如果您调用 GoogleMap.stopAnimation(),也会发生这种情况。

来源:Google Maps Android API Guides

关于android - 如何检测谷歌地图服务上的 moveCamera 完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33877621/

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