Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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
Android 检测地图摄影机何时开始移动_Android_Android Maps V2 - Fatal编程技术网

Android 检测地图摄影机何时开始移动

Android 检测地图摄影机何时开始移动,android,android-maps-v2,Android,Android Maps V2,是否有任何方法可以检测Google地图何时开始移动/在用户输入未启动更改时开始相机更改 我知道当用户手动移动触摸事件时,我可以点击触摸事件,但我找不到点击程序触发的任何事件的位置 所以如果我叫这样的东西 _nativeMap.AnimateCamera(CameraUpdateFactory.NewLatLng(newCameraLocation), _animationDuration, null); 我看到引发的唯一事件是CameraChange,它仅在更改完成后发生 我真的需要一些方法来

是否有任何方法可以检测Google地图何时开始移动/在用户输入未启动更改时开始相机更改

我知道当用户手动移动触摸事件时,我可以点击触摸事件,但我找不到点击程序触发的任何事件的位置

所以如果我叫这样的东西

_nativeMap.AnimateCamera(CameraUpdateFactory.NewLatLng(newCameraLocation), _animationDuration, null);
我看到引发的唯一事件是
CameraChange
,它仅在更改完成后发生

我真的需要一些方法来检测它何时开始移动


注意:这个例子是Xamarin/C#但我并不真正关心这个问题。

我不确定它是否有效。但是,如果贴图仍在同一位置居中,则可以使用处理程序每x秒检查一次

假设你有

LatLng lastPosition;
使用如下处理程序:

Handler h = new Handler();
int delay = REFRESH_RATE;

h.postDelayed(new Runnable(){
    public void run(){
        LatLng newPosition = mapView.getCameraPosition().target;
        double distance = computeDistance(newPosition, lastPosition);
        if(distance > THRESHOLD)
            //Camera moved.
        h.postDelayed(this, delay);
    }
}, delay);
现在,您需要定义刷新率和最小距离,以得出移动的结论。你也需要找到一种计算距离的方法,定位有一个内置的方法


您可以在animateCamera()之后使用此处理程序,并在Animation onFinish()上取消它。

在您的情况下,是什么启动相机的移动?上面的代码段使用
animateCamera
。我想尝试从
GoogleMap
继承并重写AnimateCamera方法以包含另一个事件,但它已被密封。啊,是的。这正是我一直在尝试的。是的,这似乎是唯一的方法。