1. 程式人生 > >百度地圖 滑鼠繪製工具BUG修復(地圖自動平移)

百度地圖 滑鼠繪製工具BUG修復(地圖自動平移)

開發專案時用到了滑鼠繪製工具,繪製多邊形時,滑鼠離開地圖後,地圖會自動平移。用close方法也停止不了。

看下原始碼中這樣的程式碼:

/**
      * 開啟滑鼠到地圖邊緣,自動平移地圖
      */
     Mask.prototype.enableEdgeMove = function() {
         this._enableEdgeMove = true;
     }
 
     /**
      * 關閉滑鼠到地圖邊緣,自動平移地圖
      */
     Mask.prototype.disableEdgeMove = function() {
         clearInterval(this._edgeMoveTimer);
         this._enableEdgeMove = false;
     }

發現在繪製開始時會呼叫mask.enableEdgeMove (); 結束時會呼叫mask.disableEdgeMove();還有其他地方呼叫。總之就是這裡的原因啦!我是這樣改的:

/**
          * 滑鼠移動過程的事件
          */
         var mousemoveAction = function(e) {
             //自定義---如果超出範圍,禁止地圖自動平移
            if(me._outRange){
               mask.disableEdgeMove();
                return;
            }
             overlay.setPositionAt(drawPoint.length - 1, e.point);
         }

outRange是我自定義的,標誌滑鼠是否超出繪製範圍。如果超出範圍,就禁止地圖自動平移。這樣就可以解決我的問題了。時間有限,就先這麼著了。