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