Skip to content

Commit b15ec0e

Browse files
committed
【fix】聚合图生成图例; 默认图例返回title
1 parent 9348863 commit b15ec0e

1 file changed

Lines changed: 35 additions & 20 deletions

File tree

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

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ export class WebMap extends mapboxgl.Evented {
214214
* @property {Object} error - 失败原因。
215215
*/
216216
this.fire('getmapinfofailed', { error: error });
217+
console.error(error);
217218
});
218219
}
219220

@@ -333,7 +334,7 @@ export class WebMap extends mapboxgl.Evented {
333334
renderSource: {
334335
id: layerFromMapInfo.source,
335336
type: layerFromMapInfo.type === 'raster' ? 'raster' : 'vector',
336-
sourceLayer: layerFromMapInfo["source-layer"]
337+
sourceLayer: layerFromMapInfo['source-layer']
337338
},
338339
renderLayers: this._getRenderLayers(layersContent, id)
339340
});
@@ -369,16 +370,16 @@ export class WebMap extends mapboxgl.Evented {
369370
const formatCatalogs = catalogs.map((catalog) => {
370371
let formatItem;
371372
const { id, title, type, visible, children, parts } = catalog;
372-
if(catalog.type === "group") {
373+
if (catalog.type === 'group') {
373374
formatItem = {
374375
children: this._createFormatCatalogs(children),
375376
id,
376377
title,
377378
type,
378379
visible
379-
}
380+
};
380381
} else {
381-
const matchLayer = this._appreciableLayers.find(layer => layer.id === id);
382+
const matchLayer = this._appreciableLayers.find((layer) => layer.id === id);
382383
formatItem = this._formatLayer({
383384
dataSource: matchLayer.dataSource,
384385
id,
@@ -388,31 +389,31 @@ export class WebMap extends mapboxgl.Evented {
388389
renderSource: matchLayer.renderSource,
389390
renderLayers: this._getRenderLayers(parts, id),
390391
themeSetting: matchLayer.themeSetting
391-
})
392+
});
392393
}
393394
return formatItem;
394395
});
395396
return formatCatalogs;
396397
}
397398

398399
_getRenderLayers(layerIds, layerId) {
399-
if(layerIds) {
400-
if(layerIds.includes(layerId)) {
400+
if (layerIds) {
401+
if (layerIds.includes(layerId)) {
401402
return layerIds;
402403
} else {
403-
return [layerId, ...layerIds]
404+
return [layerId, ...layerIds];
404405
}
405406
} else {
406-
return [layerId]
407+
return [layerId];
407408
}
408409
}
409410

410411
_getBaseLayer(layers) {
411412
const baseLayer = this._mapInfo.layers[0];
412413
const { id, type } = baseLayer;
413414
const baseLayerInfo = this.map.getLayer(id);
414-
const ids = layers.map(layer => layer.id);
415-
if(!ids.includes(id)) {
415+
const ids = layers.map((layer) => layer.id);
416+
if (!ids.includes(id)) {
416417
const formatBaseLayer = this._formatLayer({
417418
dataSource: {},
418419
id,
@@ -422,7 +423,7 @@ export class WebMap extends mapboxgl.Evented {
422423
renderSource: {
423424
id: baseLayerInfo.source,
424425
type: baseLayerInfo.type === 'raster' ? 'raster' : 'vector',
425-
sourceLayer: baseLayerInfo["source-layer"]
426+
sourceLayer: baseLayerInfo['source-layer']
426427
},
427428
renderLayers: [id],
428429
themeSetting: {}
@@ -433,7 +434,16 @@ export class WebMap extends mapboxgl.Evented {
433434
}
434435

435436
_formatLayer(option) {
436-
const { dataSource = {}, id, title, type, visible = true, renderSource = {}, renderLayers = [], themeSetting = {} } = option;
437+
const {
438+
dataSource = {},
439+
id,
440+
title,
441+
type,
442+
visible = true,
443+
renderSource = {},
444+
renderLayers = [],
445+
themeSetting = {}
446+
} = option;
437447
return {
438448
dataSource,
439449
id,
@@ -443,7 +453,7 @@ export class WebMap extends mapboxgl.Evented {
443453
renderSource,
444454
renderLayers,
445455
themeSetting
446-
}
456+
};
447457
}
448458

449459
_parseRendererStyleData(renderer) {
@@ -560,6 +570,7 @@ export class WebMap extends mapboxgl.Evented {
560570
{
561571
styleGroup: [
562572
{
573+
fieldValue: layerTitle || layerId,
563574
style: {
564575
...simpleResData,
565576
shape: layerType2LegendType
@@ -575,7 +586,8 @@ export class WebMap extends mapboxgl.Evented {
575586
const subStyleSetting = styleSetting[styleField];
576587
const defaultSetting = this._getSettingStyle(styleField, subStyleSetting.defaultValue, simpleStyle);
577588
let styleGroup = [];
578-
const params = { layerType2LegendType, styleField, subStyleSetting, simpleStyle, defaultSetting };
589+
const custom = this._isLinear(subStyleSetting) ? subStyleSetting.value : subStyleSetting.values;
590+
const params = { layerType2LegendType, styleField, subStyleSetting, simpleStyle, defaultSetting, custom };
579591
switch (this._getLegendStyleType(styleField, subStyleSetting)) {
580592
case LegendType.LINEAR:
581593
styleGroup = this._parseLinearStyle(params);
@@ -616,10 +628,14 @@ export class WebMap extends mapboxgl.Evented {
616628
return currentType === 'linear' ? value : values;
617629
}
618630

631+
_isLinear(subStyleSetting) {
632+
return subStyleSetting.type === 'linear';
633+
}
634+
619635
_getLegendStyleType(styleField, subStyleSetting) {
620636
const { type: currentType } = subStyleSetting;
621637
const custom = this._getSettingValue(subStyleSetting);
622-
const interpolateInfo = currentType === 'linear' ? { type: 'linear' } : subStyleSetting.interpolateInfo;
638+
const interpolateInfo = this._isLinear(subStyleSetting) ? { type: 'linear' } : subStyleSetting.interpolateInfo;
623639
if (['unique', 'linear'].includes(currentType)) {
624640
if (this._isColorAttr(styleField) && interpolateInfo && interpolateInfo.type === 'linear' && custom.length > 1) {
625641
return LegendType.LINEAR;
@@ -648,8 +664,8 @@ export class WebMap extends mapboxgl.Evented {
648664
return styleGroup;
649665
}
650666

651-
_parseUniqueStyle({ layerType2LegendType, styleField, subStyleSetting, simpleStyle, defaultSetting }) {
652-
const { values: custom, interpolateInfo = {} } = subStyleSetting;
667+
_parseUniqueStyle({ layerType2LegendType, styleField, subStyleSetting, simpleStyle, defaultSetting, custom }) {
668+
const { interpolateInfo = {} } = subStyleSetting;
653669
const styleGroup = custom.map((c) => {
654670
const itemStyle = this._getSettingStyle(styleField, c.value, simpleStyle);
655671
const resData = this._parseLegendtyle({ layerType2LegendType, customValue: itemStyle });
@@ -674,8 +690,7 @@ export class WebMap extends mapboxgl.Evented {
674690
return styleGroup;
675691
}
676692

677-
_parseRangeStyle({ layerType2LegendType, styleField, subStyleSetting, simpleStyle, defaultSetting }) {
678-
const { values: custom } = subStyleSetting;
693+
_parseRangeStyle({ layerType2LegendType, styleField, simpleStyle, defaultSetting, custom }) {
679694
const styleGroup = custom.map((c) => {
680695
const itemStyle = this._getSettingStyle(styleField, c.value, simpleStyle);
681696
const resData = this._parseLegendtyle({ layerType2LegendType, customValue: itemStyle });

0 commit comments

Comments
 (0)