每当用户移动一定距离时,我想动态更新地图/加载新地图叠加层。我该怎么做呢?每次用户移动地图时是否有监听器?我很可能只是测量中心点之间的距离。
谢谢!
答案 0 :(得分:8)
尝试此操作来检测地图移动: http://pa.rezendi.com/2010/03/responding-to-zooms-and-pans-in.html
在开始和移动地图后,您应该保存当前地图中心。如文章所示,跟踪ACTION_UP以确定用户何时完成地图移动。然后,将新地图中心与旧地图中心进行比较。要获取地图中心,请使用MapView的getMapCenter():
编辑:我已经做了一些额外的工作,并有一个完整的应用程序与代码供您享受。这篇博文解释了一个计时器解决方案,并包含一个指向Github源的链接: http://bricolsoftconsulting.com/extending-mapview-to-add-a-change-event/
答案 1 :(得分:0)
遗憾的是,地图界面不包含任何监听地图操作的侦听器(缩放/平移)。您需要设置某种类型的计时器来检查中心/缩放水平,以确定是否有变化并相应地更新。
答案 2 :(得分:0)
您可以通过覆盖onTouch(...)
中的Activity
方法来执行此操作(以便每次用户平移地图时,您都可以重新计算地图边界)。您需要知道地图的缩放级别和边界等,以便根据地图距离加载这些叠加层。