如何在Android中检测谷歌MapView运动?

时间:2011-08-02 17:06:43

标签: android user-interface map android-mapview

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

谢谢!

3 个答案:

答案 0 :(得分:8)

尝试此操作来检测地图移动: 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/

答案 1 :(得分:0)

遗憾的是,地图界面不包含任何监听地图操作的侦听器(缩放/平移)。您需要设置某种类型的计时器来检查中心/缩放水平,以确定是否有变化并相应地更新。

答案 2 :(得分:0)

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