(mapInfo)
| 1047 | } |
| 1048 | |
| 1049 | _setLayerID(mapInfo) { |
| 1050 | const sumInfo = {}; |
| 1051 | const { baseLayer, layers = [] } = mapInfo; |
| 1052 | if (!this.checkSameLayer) { |
| 1053 | const baseInfo = this._generateUniqueLayerId({ layerId: baseLayer.name, repeatIndex: 0 }); |
| 1054 | baseLayer.title = baseLayer.name; |
| 1055 | baseLayer.name = baseInfo.newId; |
| 1056 | } |
| 1057 | const layerNames = layers.map((layer) => layer.name); |
| 1058 | const _layers = layers.map((layer, index) => { |
| 1059 | if (!(layer.name in sumInfo)) { |
| 1060 | sumInfo[layer.name] = baseLayer.name === layer.name ? 1 : 0; |
| 1061 | } |
| 1062 | const matchFirstIndex = layerNames.indexOf(layer.name); |
| 1063 | const matchLastIndex = layerNames.lastIndexOf(layer.name); |
| 1064 | if (index > matchFirstIndex && index <= matchLastIndex) { |
| 1065 | sumInfo[layer.name] = sumInfo[layer.name] + 1; |
| 1066 | } |
| 1067 | let layerID = sumInfo[layer.name] ? `${layer.name}-${sumInfo[layer.name]}` : layer.name; |
| 1068 | if (!this.checkSameLayer || layer.layerType !== 'raster') { |
| 1069 | const { newId, newIndex } = this._generateUniqueLayerId({ |
| 1070 | layerId: layerID, |
| 1071 | repeatIndex: sumInfo[layer.name], |
| 1072 | layerType: layer.layerType |
| 1073 | }); |
| 1074 | sumInfo[layer.name] = newIndex; |
| 1075 | layerID = newId; |
| 1076 | } |
| 1077 | return Object.assign(layer, { layerID }); |
| 1078 | }); |
| 1079 | mapInfo.layers = _layers; |
| 1080 | mapInfo.baseLayer = baseLayer; |
| 1081 | return mapInfo; |
| 1082 | } |
| 1083 | |
| 1084 | _generateUniqueLayerId(options) { |
| 1085 | let { layerId, repeatIndex, layerType } = options; |
no test coverage detected