Skip to content

Commit 5bac10e

Browse files
committed
【fix】mapboxgl 多个三维专题图叠加高亮报错的问题(ICL-1183) review by xiongjj
1 parent 014b9bc commit 5bac10e

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

src/mapboxgl/overlay/theme/Theme3DLayer.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ export class Theme3DLayer {
116116
* @default 'bottom-right'
117117
*/
118118
this.legendPosition = 'bottom-right';
119+
this._highlightLayerId = `${this.id}-highlightLayer`;
119120
this._extend(this, layerOptions);
120121
}
121122

@@ -241,10 +242,9 @@ export class Theme3DLayer {
241242
this.map.removeLayer(layerId);
242243
}
243244
//移除高亮图层
244-
var highlightLayerId = "highlightLayer";
245-
if (this.map.getLayer(highlightLayerId)) {
245+
if (this.map.getLayer(this._highlightLayerId)) {
246246
this._selectFeatureId = null;
247-
this.map.removeLayer(highlightLayerId);
247+
this.map.removeLayer(this._highlightLayerId );
248248
}
249249

250250
//移除图例
@@ -349,7 +349,7 @@ export class Theme3DLayer {
349349
}
350350
var map = this.map;
351351
map.addLayer({
352-
'id': 'highlightLayer',
352+
'id': this._highlightLayerId,
353353
'type': 'fill-extrusion',
354354
'source': this.sourceId,
355355
'paint': this.getHighlightStyleOptions(),
@@ -379,12 +379,12 @@ export class Theme3DLayer {
379379
return;
380380
}
381381
me._selectFeatureId = id;
382-
map.setFilter("highlightLayer", ['==', '$id', me._selectFeatureId]);
382+
map.setFilter(me._highlightLayerId, ['==', '$id', me._selectFeatureId]);
383383
}
384384

385385
_clearHighlight() {
386386
if (this.map) {
387-
this.map.setFilter("highlightLayer", ["in", "$id", ""]);
387+
this.map.setFilter(this._highlightLayerId, ["in", "$id", ""]);
388388
}
389389
}
390390

test/mapboxgl/overlay/RangeTheme3DLayerSpec.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ describe('mapboxgl_RangeTheme3DLayer', () => {
111111
expect(themeLayer.heightField).toBe("POP_DENSITY99");
112112
expect(themeLayer.heightStops.length).toEqual(3);
113113
expect(themeLayer.id).toBe("range3DThemeLayer");
114+
expect(themeLayer._highlightLayerId).toBe("range3DThemeLayer-highlightLayer");
114115
expect(themeLayer.highlight.color).toBe("#058e94");
115116
expect(themeLayer.legendTitle).toBe("人口密度");
116117
var layerStyleOptions = themeLayer.getLayerStyleOptions();

test/mapboxgl/overlay/UniqueTheme3DLayerSpec.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ describe('mapboxgl_UniqueTheme3DLayer', () => {
107107
expect(themeLayer.height).toEqual(6000);
108108
expect(themeLayer.heightField).toBe("height");
109109
expect(themeLayer.id).toBe("uniqueTheme3DLayer");
110+
expect(themeLayer._highlightLayerId).toBe("uniqueTheme3DLayer-highlightLayer");
110111
expect(themeLayer.highlight.color).toBe("#ADA91E");
111112
expect(themeLayer.legendTitle).toBe("土地利用类型");
112113
var layerStyleOptions = themeLayer.getLayerStyleOptions();

0 commit comments

Comments
 (0)