gpt4 book ai didi

android - 检测 map 相机何时开始移动

转载 作者:行者123 更新时间:2023-11-30 01:30:05 25 4
gpt4 key购买 nike

当更改不是由用户输入启动时,是否有任何方法可以检测 GoogleMaps map 何时开始移动/开始相机更改?

我知道我可以在用户手动移动触摸事件时点击它,但我找不到在哪里点击以编程方式触发的任何事件。

所以如果我这样调用

_nativeMap.AnimateCamera(CameraUpdateFactory.NewLatLng(newCameraLocation), _animationDuration, null);

我看到引发的唯一事件是 CameraChange,它仅在更改完成后发生。

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

注意:此示例是 Xamarin/C#,但我并不关心它。

最佳答案

我不确定它是否有效。但也许您可以使用处理程序检查每 x 秒是否 map 仍居中于同一位置。

假设你有

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);

现在您需要定义刷新率,以及确定您有运动的最小距离。您还需要找到一种计算距离的方法,Location 有一个内置方法...

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

关于android - 检测 map 相机何时开始移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35872154/

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