1. 程式人生 > >arcgis for android 呼叫公網天地圖註記重影問題

arcgis for android 呼叫公網天地圖註記重影問題

      最近在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);
    }