我希望制作一个Android应用程序,当用户在地图上滚动时,动态加载要在地图上显示的数据。 为此,我需要捕获mapview的onscroll事件。 sdk中没有为mapview提供默认的onscrolllistener。
我找到了以下解决方案:
每x秒启动一次计时器任务,检查地图的当前中心是否与旧中心相同。如果没有加载新标记。
为地图启动ontouchlistener并捕获运动事件。我正在使用的代码如下:
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if (arg1.getAction() == MotionEvent.ACTION_MOVE) {
Log.i("rohan", "onmovement captured");
GeoPoint gp = ((MapView) arg0).getMapCenter();
int lat = gp.getLatitudeE6();
int lng = gp.getLongitudeE6();
view1CustomAddress =(some url)
new view1GetMapsInformationThread().execute(null);
}
return false;
}
});
但是当我滚动地图时,上面的内容没有被调用。
3.最后也是最乏味的是我扩展了mapview,然后覆盖了计算滚动方法。
我不想求助于sol 3.如果有人能告诉我一个更简单的方法来捕获用户滚动时我可以动态加载叠加(这我知道该怎么做)我将是最有必要的。
如果有人能告诉我为什么我的sol 2不起作用,那也会有所帮助。
提前谢谢。