如何在Android中检测Google MapView移动?
我希望在用户每次移动地图一定距离时动态更新地图/加载新的地图覆盖。我该怎么做呢?用户每次移动地图时是否都有侦听器?很可能我只是测量中心点之间的距离如何在Android中检测Google MapView移动?,android,user-interface,map,android-mapview,Android,User Interface,Map,Android Mapview,我希望在用户每次移动地图一定距离时动态更新地图/加载新的地图覆盖。我该怎么做呢?用户每次移动地图时是否都有侦听器?很可能我只是测量中心点之间的距离 谢谢 不幸的是,地图界面没有任何监听器来监视地图操作(缩放/平移)。您需要设置某种计时器来检查居中/缩放级别,以确定是否发生了相应的更改和更新。您可以通过覆盖活动中的onTouch(…)方法来完成此操作(这样,每次用户平移地图时,您都可以重新计算地图边界)。您需要知道地图的缩放级别和边界等,以便根据地图距离加载这些覆盖图。尝试以下方法来检测地图移动:
谢谢 不幸的是,地图界面没有任何监听器来监视地图操作(缩放/平移)。您需要设置某种计时器来检查居中/缩放级别,以确定是否发生了相应的更改和更新。您可以通过覆盖
活动中的onTouch(…)
方法来完成此操作(这样,每次用户平移地图时,您都可以重新计算地图边界)。您需要知道地图的缩放级别和边界等,以便根据地图距离加载这些覆盖图。尝试以下方法来检测地图移动:
在开始和移动地图后,应保存当前地图中心。正如文章所建议的,跟踪动作以确定用户何时完成地图移动。然后,将新地图中心与旧地图中心进行比较。要获取地图中心,请使用MapView的getMapCenter():
编辑:我已经做了一些额外的工作在这方面,并有一个完整的应用程序与代码供您享受。这篇博文解释了一个计时器解决方案,并包含一个指向Github源的链接:
但如果用户向左滑动地图,地图不会移动到用户触摸地图的不同位置吗?没有办法确定最终位置,是吗?通过捕获动作向下
和动作向上
动作事件
s,您可以计算滑动的距离,从而计算用户在地图上平移的距离。