diff --git a/DrawingManager/src/DrawingManager.js b/DrawingManager/src/DrawingManager.js index 119c5c5..e1a7cee 100644 --- a/DrawingManager/src/DrawingManager.js +++ b/DrawingManager/src/DrawingManager.js @@ -943,6 +943,9 @@ var BMAP_DRAWING_MARKER = "marker", // 鼠标画点模式 if (opts.sorptionDistance !== undefined) { this.setSorptionDistance(opts.sorptionDistance); } + if(opts.sorpOverlays){ + this.setSorpOverlays(opts.sorpOverlays) + } // 是否计算绘制出的面积 if (opts.enableCalculate === true) { @@ -1011,6 +1014,10 @@ var BMAP_DRAWING_MARKER = "marker", // 鼠标画点模式 this._sorptionDistance = distance || 0; }; + DrawingManager.prototype.setSorpOverlays = function(sorpOverlays) { + this._sorpOverlays = sorpOverlays || []; + }; + DrawingManager.prototype.setPolygonOptions = function(options) { this.polygonOptions = options || {}; }; @@ -1469,6 +1476,14 @@ var BMAP_DRAWING_MARKER = "marker", // 鼠标画点模式 overlay.setPositionAt(drawPoint.length - 1, matchs[0].point); return; } + if(me._sorpOverlays){ + var matchs2 = me.getSorptionMatch(point, me._sorpOverlays, me._sorptionDistance); + if (matchs2 && matchs2.length > 0) { + match = matchs2[0].point; + overlay.setPositionAt(drawPoint.length - 1, matchs2[0].point); + return; + } + } } match = null; @@ -2933,4 +2948,4 @@ var BMAP_DRAWING_MARKER = "marker", // 鼠标画点模式 return point; } -})(); +})(); \ No newline at end of file