开发项目时用到了鼠标绘制工具,绘制多边形时,鼠标离开地图后,地图会自动平移。用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是我自定义的,标志鼠标是否超出绘制范围。如果超出范围,就禁止地图自动平移。这样就可以解决我的问题了。时间有限,就先这么着了。