Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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中检测Google MapView移动?_Android_User Interface_Map_Android Mapview - Fatal编程技术网

如何在Android中检测Google MapView移动?

如何在Android中检测Google MapView移动?,android,user-interface,map,android-mapview,Android,User Interface,Map,Android Mapview,我希望在用户每次移动地图一定距离时动态更新地图/加载新的地图覆盖。我该怎么做呢?用户每次移动地图时是否都有侦听器?很可能我只是测量中心点之间的距离 谢谢 不幸的是,地图界面没有任何监听器来监视地图操作(缩放/平移)。您需要设置某种计时器来检查居中/缩放级别,以确定是否发生了相应的更改和更新。您可以通过覆盖活动中的onTouch(…)方法来完成此操作(这样,每次用户平移地图时,您都可以重新计算地图边界)。您需要知道地图的缩放级别和边界等,以便根据地图距离加载这些覆盖图。尝试以下方法来检测地图移动:

我希望在用户每次移动地图一定距离时动态更新地图/加载新的地图覆盖。我该怎么做呢?用户每次移动地图时是否都有侦听器?很可能我只是测量中心点之间的距离


谢谢

不幸的是,地图界面没有任何监听器来监视地图操作(缩放/平移)。您需要设置某种计时器来检查居中/缩放级别,以确定是否发生了相应的更改和更新。

您可以通过覆盖
活动中的
onTouch(…)
方法来完成此操作(这样,每次用户平移地图时,您都可以重新计算地图边界)。您需要知道地图的缩放级别和边界等,以便根据地图距离加载这些覆盖图。

尝试以下方法来检测地图移动:

在开始和移动地图后,应保存当前地图中心。正如文章所建议的,跟踪动作以确定用户何时完成地图移动。然后,将新地图中心与旧地图中心进行比较。要获取地图中心,请使用MapView的getMapCenter():

编辑:我已经做了一些额外的工作在这方面,并有一个完整的应用程序与代码供您享受。这篇博文解释了一个计时器解决方案,并包含一个指向Github源的链接:

但如果用户向左滑动地图,地图不会移动到用户触摸地图的不同位置吗?没有办法确定最终位置,是吗?通过捕获
动作向下
动作向上
动作事件
s,您可以计算滑动的距离,从而计算用户在地图上平移的距离。