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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy