百度地图 鼠标绘制工具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是我自定义的,标志鼠标是否超出绘制范围。如果超出范围,就禁止地图自动平移。这样就可以解决我的问题了。时间有限,就先这么着了。

没有更多推荐了,返回首页