Skip to content

Commit 5c30f5f

Browse files
committed
【update】图例缺省值优化
1 parent be1c5a9 commit 5c30f5f

1 file changed

Lines changed: 16 additions & 15 deletions

File tree

‎src/mapboxgl/mapping/webmap/v3/WebMap.js‎

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -586,9 +586,10 @@ export class WebMap extends mapboxgl.Evented {
586586
const subStyleSetting = styleSetting[styleField];
587587
const defaultSetting = this._getSettingStyle(styleField, subStyleSetting.defaultValue, simpleStyle);
588588
let styleGroup = [];
589-
const custom = this._isLinear(subStyleSetting) ? subStyleSetting.value : subStyleSetting.values;
590-
const params = { layerType2LegendType, styleField, subStyleSetting, simpleStyle, defaultSetting, custom };
591-
switch (this._getLegendStyleType(styleField, subStyleSetting)) {
589+
const custom = this._getSettingCustom(subStyleSetting);
590+
const interpolateInfo = this._getSettingInterpolateInfo(subStyleSetting);
591+
const params = { layerType2LegendType, styleField, subStyleSetting, simpleStyle, defaultSetting, custom, interpolateInfo };
592+
switch (this._getLegendStyleType({ styleField, currentType: subStyleSetting.type, custom, interpolateInfo })) {
592593
case LegendType.LINEAR:
593594
styleGroup = this._parseLinearStyle(params);
594595
break;
@@ -623,21 +624,23 @@ export class WebMap extends mapboxgl.Evented {
623624
return colorList;
624625
}
625626

626-
_getSettingValue(setting) {
627-
const { type: currentType, value, values } = setting;
628-
return currentType === 'linear' ? value : values;
627+
_getSettingCustom(setting) {
628+
const { value, values } = setting;
629+
return this._isLinear(setting) ? value : values;
630+
}
631+
632+
_getSettingInterpolateInfo(setting) {
633+
const { interpolateInfo = {} } = setting;
634+
return this._isLinear(setting) ? { type: 'linear' } : interpolateInfo;
629635
}
630636

631637
_isLinear(subStyleSetting) {
632638
return subStyleSetting.type === 'linear';
633639
}
634640

635-
_getLegendStyleType(styleField, subStyleSetting) {
636-
const { type: currentType } = subStyleSetting;
637-
const custom = this._getSettingValue(subStyleSetting);
638-
const interpolateInfo = this._isLinear(subStyleSetting) ? { type: 'linear' } : subStyleSetting.interpolateInfo;
641+
_getLegendStyleType({ styleField, currentType, custom, interpolateInfo }) {
639642
if (['unique', 'linear'].includes(currentType)) {
640-
if (this._isColorAttr(styleField) && interpolateInfo && interpolateInfo.type === 'linear' && custom.length > 1) {
643+
if (this._isColorAttr(styleField) && interpolateInfo.type === 'linear' && custom.length > 1) {
641644
return LegendType.LINEAR;
642645
}
643646
return LegendType.UNIQUE;
@@ -649,8 +652,7 @@ export class WebMap extends mapboxgl.Evented {
649652
return ['color', 'textColor', 'outlineColor', 'textHaloColor'].includes(key);
650653
}
651654

652-
_parseLinearStyle({ subStyleSetting, layerType2LegendType }) {
653-
const custom = this._getSettingValue(subStyleSetting) || [];
655+
_parseLinearStyle({ layerType2LegendType, custom }) {
654656
const styleGroup = [
655657
{
656658
styleField: null,
@@ -664,8 +666,7 @@ export class WebMap extends mapboxgl.Evented {
664666
return styleGroup;
665667
}
666668

667-
_parseUniqueStyle({ layerType2LegendType, styleField, subStyleSetting, simpleStyle, defaultSetting, custom }) {
668-
const { interpolateInfo = {} } = subStyleSetting;
669+
_parseUniqueStyle({ layerType2LegendType, styleField, simpleStyle, defaultSetting, custom, interpolateInfo }) {
669670
const styleGroup = custom.map((c) => {
670671
const itemStyle = this._getSettingStyle(styleField, c.value, simpleStyle);
671672
const resData = this._parseLegendtyle({ layerType2LegendType, customValue: itemStyle });

0 commit comments

Comments
 (0)