最近在android项目开发中,使用arcgis for android 地图api调用公网的天地图。有一个问题,天地图的注记层,在地图缩放的时候刷新滞后,导致注记层有重影,用户体验差。
解决思路:地图缩放的时候,先移除注记层,然后再重新添加
首先,绑定地图缩放事件
mMapView.setOnZoomListener(new OnZoomListener() {
@Override
public void preAction(float v, float v1, double v2) {
dorefresh();
}
@Override
public void postAction(float v, float v1, double v2) {
dorefresh();
}
});
其次, 刷新操作
刷新规则:缩放前后地图比例尺差值超过200,时间超过500毫秒,lastscale.lasttime用于记录上次的比例尺和时间
public void dorefresh() {
double mapScale = mMapView.getScale();
Date now = new Date(System.currentTimeMillis());
if (lasttime == null || lastscale == 0
|| (Math.abs(lastscale - mapScale) > 200 && (now.getTime() - lasttime.getTime()) > 500)) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
refreshLabelLayer();
}
}, 0);
}
lastscale = mapScale;
lasttime = new Date();
}
最后,注记层刷新操作
public void refreshLabelLayer() {
mMapView.removeLayer(annolayer);
mMapView.addLayer(annolayer);
}