Skip to content

Commit e78902c

Browse files
committed
fix 分组报错问题
1 parent 69ddbd8 commit e78902c

File tree

3 files changed

+125
-4
lines changed

3 files changed

+125
-4
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ export class WebMap extends mapboxgl.Evented {
546546
if (catalog[catalogTypeField] === 'group') {
547547
this._updateLayerCatalogsId({
548548
loopData: children,
549-
catalogs,
549+
catalogs: children,
550550
layerIdMapList,
551551
catalogTypeField,
552552
layerIdsField,
@@ -635,7 +635,7 @@ export class WebMap extends mapboxgl.Evented {
635635
delete layer['source-layer'];
636636
}
637637
return layer;
638-
}).filter(item => this.map.getLayer(item.id));
638+
});
639639
if (this._appendLayers) {
640640
return selfLayers;
641641
}
@@ -768,7 +768,7 @@ export class WebMap extends mapboxgl.Evented {
768768
}, []);
769769
const allLayersOnMap = this._getLayersOnMap();
770770
const extraLayers = allLayersOnMap.filter((layer) => !layerIdsFromCatalog.some((id) => id === layer.id));
771-
const layerCatalogs = layerCatalog.concat(extraLayers).filter(item => this.map.getLayer(item.id));
771+
const layerCatalogs = layerCatalog.concat(extraLayers);
772772
const appreciableLayers = this.getAppreciableLayers();
773773
const formatLayerCatalog = this._createFormatCatalogs(layerCatalogs, appreciableLayers);
774774
return formatLayerCatalog;

test/mapboxgl/mapping/WebMapV3Spec.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -856,4 +856,25 @@ describe('mapboxgl-webmap3.0', () => {
856856
done();
857857
});
858858
});
859+
860+
it('test group', (done) => {
861+
spyOn(FetchRequest, 'get').and.callFake((url) => {
862+
if (url.indexOf('/sprite') > -1) {
863+
return Promise.resolve(new Response(msSpriteInfo));
864+
}
865+
return Promise.resolve();
866+
});
867+
const mapInfo = JSON.parse(mapstudioWebMap_group);
868+
const mapstudioWebmap = new WebMapV3(mapInfo, {
869+
server: server,
870+
target: 'map'
871+
});
872+
mapstudioWebmap.on('addlayerssucceeded', ({ map }) => {
873+
const appreciableLayers = mapstudioWebmap.getAppreciableLayers();
874+
const layerCatalogs = mapstudioWebmap.getLayerCatalog();
875+
expect(layerCatalogs.length).toBeLessThanOrEqual(appreciableLayers.length);
876+
done();
877+
});
878+
mapstudioWebmap.initializeMap(mapInfo);
879+
});
859880
});

test/resources/WebMapV3.js

Lines changed: 101 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2298,4 +2298,104 @@ var msProjectINfo_layerData = JSON.stringify({
22982298
isDefaultBottomMap: false,
22992299
status: null,
23002300
favoriteCount: 0
2301-
});
2301+
});
2302+
2303+
var mapstudioWebMap_group = JSON.stringify({
2304+
metadata: {
2305+
layerCatalog: [
2306+
{
2307+
visible: true,
2308+
children: [
2309+
{
2310+
visible: true,
2311+
id: "四川省市级边界",
2312+
title: "四川省市级边界",
2313+
type: "basic"
2314+
}
2315+
],
2316+
id: "ms_group_1719799741965_7",
2317+
title: "未命名分组",
2318+
type: "group"
2319+
},
2320+
{
2321+
visible: true,
2322+
id: "CHINA_DARK",
2323+
title: "中国暗色地图",
2324+
type: "basic"
2325+
}
2326+
]
2327+
},
2328+
sources: {
2329+
ms_10451348_1719799738109_6: {
2330+
tiles: [
2331+
"http://172.16.15.94:8080/iportal/web/datas/10451348/structureddata/tiles/{z}/{x}/{y}.mvt?epsgCode=3857&returnedFieldNames=%5B%22smpid%22%2C%22parent%22%2C%22adcode%22%2C%22level%22%2C%22centroid%22%2C%22childrenNum%22%2C%22center%22%2C%22subFeatureIndex%22%2C%22name%22%2C%22acroutes%22%5D&geometryFieldName=geometry"
2332+
],
2333+
bounds: [
2334+
97.350096,
2335+
26.045865,
2336+
108.546488,
2337+
34.312446
2338+
],
2339+
type: "vector"
2340+
},
2341+
CHINA_DARK: {
2342+
tiles: [
2343+
"https://maptiles.supermapol.com/iserver/services/map_China/rest/maps/China_Dark/tileimage.png?scale={scale}&x={x}&y={y}&width={width}&height={height}&transparent=true&redirect=false&cacheEnabled=true"
2344+
],
2345+
tileSize: 256,
2346+
attribution: "",
2347+
bounds: [
2348+
-180,
2349+
-90,
2350+
180,
2351+
90
2352+
],
2353+
type: "raster"
2354+
}
2355+
},
2356+
crs: "EPSG:3857",
2357+
center: [
2358+
101.12284196390647,
2359+
30.26608027222483
2360+
],
2361+
zoom: 5.9855446883732935,
2362+
glyphs: { },
2363+
version: "3.2.1",
2364+
rootUrl: "http://172.16.15.94:8080/iportal/",
2365+
maxzoom: 12,
2366+
name: "无标题地图group1",
2367+
viewExtent: [
2368+
94.1151112782352,
2369+
34.31244599999984,
2370+
108.13057264957897,
2371+
26.045864999999523
2372+
],
2373+
layers: [
2374+
{
2375+
maxzoom: 12,
2376+
id: "CHINA_DARK",
2377+
source: "CHINA_DARK",
2378+
type: "raster",
2379+
minzoom: 0
2380+
},
2381+
{
2382+
layout: {
2383+
visibility: "visible"
2384+
},
2385+
metadata: { },
2386+
maxzoom: 24,
2387+
paint: {
2388+
'fill-outline-color': "#FFFFFF",
2389+
'fill-color': "#826DBA",
2390+
'fill-opacity': 0.9
2391+
},
2392+
id: "四川省市级边界",
2393+
source: "ms_10451348_1719799738109_6",
2394+
'source-layer': "10451348$geometry",
2395+
type: "fill",
2396+
minzoom: 0
2397+
}
2398+
],
2399+
pitch: 0,
2400+
minzoom: 0
2401+
})

0 commit comments

Comments
 (0)