arcgis for android 呼叫公網天地圖註記重影問題
阿新 • • 發佈:2018-11-11
最近在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);
}