Skip to content

Commit 952a0ce

Browse files
committed
[fix]修复加载dv被隐藏的矢量瓦片,初始显隐不对的问题 review by luox
1 parent 259a048 commit 952a0ce

File tree

4 files changed

+65
-1
lines changed

4 files changed

+65
-1
lines changed

src/common/mapping/WebMapV2.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@ export function createWebMapV2Extending(SuperClass, { MapManager, mapRepo }) {
314314

315315
_createMVTBaseLayer(layerInfo, addedCallback) {
316316
let url = layerInfo.dataSource.url;
317+
const visible = layerInfo.visible;
317318
if (url.indexOf('/restjsr/') > -1 && !/\/style\.json$/.test(url)) {
318319
url += '/style.json';
319320
}
@@ -326,6 +327,9 @@ export function createWebMapV2Extending(SuperClass, { MapManager, mapRepo }) {
326327
addedCallback && addedCallback();
327328
return;
328329
}
330+
style.layers.forEach(layer => {
331+
layer.layout && (layer.layout.visibility = visible ? 'visible' : 'none');
332+
})
329333
this.map.addStyle(style);
330334
const layerIds = [];
331335
style.layers.forEach((item) => {

src/common/mapping/utils/SourceModel.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@ class SourceModel {
2121
this.renderSource = {};
2222
this.dataSource = {};
2323
this.themeSetting = {};
24-
this.visible = true;
2524
this.title = this.id;
2625
}
26+
if (layer.visible || this.visible) {
27+
this.visible = true;
28+
} else {
29+
this.visible = false;
30+
}
2731
this.children.push(layer);
2832
return;
2933
}

test/mapboxgl/mapping/WebMapV2Spec.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2783,4 +2783,32 @@ describe('mapboxgl_WebMapV2', () => {
27832783
done();
27842784
});
27852785
});
2786+
2787+
it('MAPBOXSTYLE visible false', (done) => {
2788+
const mvtLayerClone = JSON.parse(JSON.stringify(mvtLayer));
2789+
mvtLayerClone.layers[0].visible = false;
2790+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2791+
if (url.indexOf('portal.json') > -1) {
2792+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2793+
}
2794+
if (url.indexOf('1788054202/map.json') > -1) {
2795+
return Promise.resolve(new Response(JSON.stringify(mvtLayerClone)));
2796+
}
2797+
if (url.indexOf('web/datas/676516522/content.json') > -1) {
2798+
return Promise.resolve(new Response(layerData_CSV));
2799+
}
2800+
if (url.indexOf('ChinaqxAlberts_4548%40fl-new/style.json') > -1) {
2801+
return Promise.resolve(new Response(styleJson));
2802+
}
2803+
});
2804+
datavizWebmap = new WebMap(id, { ...commonOption });
2805+
const callback = function () {
2806+
const appreciableLayers = datavizWebmap.getLayers();
2807+
expect(appreciableLayers[1].id).toBe('ChinaqxAlberts_4548@fl-new');
2808+
expect(appreciableLayers[1].visible).toBe(false);
2809+
expect(appreciableLayers[2].id).toBe('民航数据');
2810+
done();
2811+
};
2812+
datavizWebmap.on('mapcreatesucceeded', callback);
2813+
});
27862814
});

test/maplibregl/mapping/WebMapV2Spec.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2783,4 +2783,32 @@ describe('maplibregl_WebMapV2', () => {
27832783
done();
27842784
});
27852785
});
2786+
2787+
it('MAPBOXSTYLE visible false', (done) => {
2788+
const mvtLayerClone = JSON.parse(JSON.stringify(mvtLayer));
2789+
mvtLayerClone.layers[0].visible = false;
2790+
spyOn(FetchRequest, 'get').and.callFake((url) => {
2791+
if (url.indexOf('portal.json') > -1) {
2792+
return Promise.resolve(new Response(JSON.stringify(iportal_serviceProxy)));
2793+
}
2794+
if (url.indexOf('1788054202/map.json') > -1) {
2795+
return Promise.resolve(new Response(JSON.stringify(mvtLayerClone)));
2796+
}
2797+
if (url.indexOf('web/datas/676516522/content.json') > -1) {
2798+
return Promise.resolve(new Response(layerData_CSV));
2799+
}
2800+
if (url.indexOf('ChinaqxAlberts_4548%40fl-new/style.json') > -1) {
2801+
return Promise.resolve(new Response(styleJson));
2802+
}
2803+
});
2804+
datavizWebmap = new WebMap(id, { ...commonOption });
2805+
const callback = function () {
2806+
const appreciableLayers = datavizWebmap.getLayers();
2807+
expect(appreciableLayers[1].id).toBe('ChinaqxAlberts_4548@fl-new');
2808+
expect(appreciableLayers[1].visible).toBe(false);
2809+
expect(appreciableLayers[2].id).toBe('民航数据');
2810+
done();
2811+
};
2812+
datavizWebmap.on('mapcreatesucceeded', callback);
2813+
});
27862814
});

0 commit comments

Comments
 (0)