百度地圖 滑鼠繪製工具BUG修復(地圖自動平移)
阿新 • • 發佈:2019-01-12
開發專案時用到了滑鼠繪製工具,繪製多邊形時,滑鼠離開地圖後,地圖會自動平移。用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是我自定義的,標誌滑鼠是否超出繪製範圍。如果超出範圍,就禁止地圖自動平移。這樣就可以解決我的問題了。時間有限,就先這麼著了。