如何检测Android中的Google MapView运动?

每当我的用户移动一定距离时,我想动态更新地图/加载新地图叠加层。 我该怎么做呢? 每次用户移动地图时是否有监听器? 我很可能只是测量中心点之间的距离。

谢谢!

试试这个以检测地图移动: http : //pa.rezendi.com/2010/03/responding-to-zooms-and-pans-in.html

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

http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/MapView.html#getMapCenter()

编辑:我已经做了一些额外的工作,并有一个完整的应用程序与代码供您享受。 这篇博文解释了一个计时器解决方案,并包含一个指向Github源的链接: http : //bricolsoftconsulting.com/extending-mapview-to-add-a-change-event/

遗憾的是,地图界面不包括监视地图操作(缩放/平移)的任何侦听器。 您需要设置某种types的计时器来检查中心/缩放水平,以确定事情是否已更改并相应地更新。

您可以通过覆盖ActivityonTouch(...)方法来实现此onTouch(...)这样每次用户平移地图时,您都可以重新计算地图边界)。 您需要知道地图的缩放级别和边界等,以便根据地图距离加载这些叠加层。