File tree Expand file tree Collapse file tree
src/mapboxgl/mapping/webmap/v3 Expand file tree Collapse file tree Original file line number Diff line number Diff 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 ;
Original file line number Diff line number Diff 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} ) ;
Original file line number Diff line number Diff 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+ } )
You can’t perform that action at this time.
0 commit comments