From a0ac379b28daeac8deddfae34f0015935a811bac Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期五, 07 二月 2025 17:39:47 +0800 Subject: [PATCH] 修改细分网格的展示逻辑 --- src/utils/map/grid.js | 82 ++++++++++++++++++++++++----------------- 1 files changed, 48 insertions(+), 34 deletions(-) diff --git a/src/utils/map/grid.js b/src/utils/map/grid.js index 2a45509..a3d8d08 100644 --- a/src/utils/map/grid.js +++ b/src/utils/map/grid.js @@ -84,28 +84,43 @@ * 鏂囨湰鏍囪 * 鍙慨鏀筽osition */ -function textMaker(position, text) { +function textMaker(position, text, anchor, type) { + let style = {}; + if (type == 'data') { + style = { + 'font-size': '12px', + 'text-align': 'center', + color: 'white', + background: '#122b54a9', + 'text-shadow': 'black 2px 2px 2px', + border: '0px', + 'margin-top': '4px' + }; + } else if (type == 'rank') { + style = { + 'font-size': '14px', + 'text-align': 'center', + color: 'white', + background: 'transparent', + 'text-shadow': 'black 2px 2px 2px', + 'border-radius': '2px', + border: '1px solid #122b54a9', + 'margin-bottom': '4px' + }; + } // eslint-disable-next-line no-undef return new AMap.Text({ text: text, + anchor, position: position, - style: { - 'font-size': '13px', - 'text-align': 'center', - color: 'white', - 'background-color': 'transparent', - 'text-shadow': 'black 2px 2px 2px', - 'border-radius': '2px', - border: '0px', - padding: '4px' - } + style: style }); } /** * 娴烽噺鏂囨湰鏍囨敞 */ -function textLabelMarker(position, text, direction) { +function textLabelMarker(position, text, direction, style) { // eslint-disable-next-line no-undef return new AMap.LabelMarker({ position: position, @@ -124,15 +139,16 @@ content: text ? text + '' : '', direction: direction ? direction : 'center', style: { + 'border-radius': '.25rem', fontSize: 12, fillColor: '#fff', - // strokeColor: 'rgba(0, 0, 0, 0.5)', - // strokeWidth: 3, - backgroundColor: '#122b54a9' - // padding: [3, 10], + strokeColor: 'rgba(0, 0, 0, 1)', + strokeWidth: 4, + // backgroundColor: '#122b54a9', + padding: [3, 10], // backgroundColor: 'yellow', - // borderColor: '#ccc', - // borderWidth: 3 + borderColor: '#ccc', + borderWidth: 30 } } }); @@ -202,21 +218,21 @@ return gridViews; }, - drawGridText(points, textViews) { + drawGridText(points, textViews, anchor, type) { if (textViews) { points.forEach((p, i) => { textViews[i].setPosition(p.lnglat_GD); textViews[i].setText(p.data); }); - return textViews; + return { textViews }; } else { const _textViews = []; points.forEach((p) => { - const m = textMaker(p.lnglat_GD, p.data); + const m = textMaker(p.lnglat_GD, p.data, anchor, type); _textViews.push(m); }); map.add(_textViews); - return _textViews; + return { textViews: _textViews }; } }, @@ -241,9 +257,6 @@ animation: false }); const _textViews = []; - // const m = textLabelMarker([121.329723, 31.240625], 25); - // _textViews.push(m); - // labelsLayer.add(m); points.forEach((p) => { const m = textLabelMarker(p.lnglat_GD, p.data, direction); _textViews.push(m); @@ -251,9 +264,9 @@ labelsLayer.add(m); }); map.add(labelsLayer); - map.on('zoomend', () => { - console.log(map.getZoom()); - }); + // map.on('zoomend', () => { + // console.log(map.getZoom()); + // }); return { textViews: _textViews, labelsLayer }; } }, @@ -277,13 +290,14 @@ }, drawGridColorCustom(gridViews, texts) { - var max,min - texts.forEach(t => { + var max, min; + texts.forEach((t) => { + if (!t) return; if (!max || t > max) { - max = t + max = t; } if (!min || t < min) { - min = t + min = t; } }); gridViews.forEach((g, i) => { @@ -291,7 +305,7 @@ const { color, nextColor, range, nextRange } = Legend.getCustomColorAndNext(data, min, max); const ratio = (data - range) / (nextRange - range); - + const _color = getColorBetweenTwoColors( color.map((v) => v * 255), nextColor.map((v) => v * 255), @@ -303,5 +317,5 @@ fillOpacity: color[3] == 0 ? 0 : 0.7 }); }); - }, + } }; -- Gitblit v1.9.3