From 73d614b57f7e55249dce2881a6da3038f2522039 Mon Sep 17 00:00:00 2001 From: zhangjl23 <65376985+mmjinglin163@users.noreply.github.com> Date: Tue, 19 Dec 2023 17:05:47 +0800 Subject: [PATCH] add default adsorption Overlays --- DrawingManager/src/DrawingManager.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/DrawingManager/src/DrawingManager.js b/DrawingManager/src/DrawingManager.js index da39502..d251b75 100644 --- a/DrawingManager/src/DrawingManager.js +++ b/DrawingManager/src/DrawingManager.js @@ -927,6 +927,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) { @@ -995,6 +998,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 || {}; }; @@ -1431,6 +1438,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; @@ -2860,4 +2875,4 @@ var BMAP_DRAWING_MARKER = "marker", // 鼠标画点模式 return point; } -})(); +})(); \ No newline at end of file