如何在Google地图服务上检测moveCamera?

Hoc*_*Lee 9 android dictionary callback

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

我将onCamerachange()和onMapLoaded()函数用于Googlemap对象,

但是这个回调处理程序的时间不符合我的意图.

我想将相机移动到我想要的位置,当加载地图完成后,想要拍摄一个screnshot.

你们是谁知道我该怎么办?

谢谢.

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

+ MYSOLUTION

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

首先加载地图时,只调用一次OnMapLoaded()回调函数.

在加载所有切片之前调用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);
}
Run Code Online (Sandbox Code Playgroud)

现在,移动相机时,始终会调用onMapLoaded().

谢谢大家.

Bra*_*dio 30

你可以实现这个:

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() {

            }
        });
Run Code Online (Sandbox Code Playgroud)

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

的CameraUpdate

CameraUpdate描述移动摄像机的位置.callback实现GoogleMap.CancellableCallback的对象.这个用于处理任务的通用接口定义了两种方法onCancel()onFinished().对于动画,在以下情况下调用方法:

onFinish()

如果动画不间断地完成,则调用.

onCancel()

如果通过调用stopAnimation()或开始新的相机移动来中断动画,则调用此方法.

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

来源:Google Maps Android API指南