File tree Expand file tree Collapse file tree 3 files changed +125
-4
lines changed
src/mapboxgl/mapping/webmap/v3 Expand file tree Collapse file tree 3 files changed +125
-4
lines changed Original file line number Diff line number Diff line change @@ -546,7 +546,7 @@ export class WebMap extends mapboxgl.Evented {
546
546
if ( catalog [ catalogTypeField ] === 'group' ) {
547
547
this . _updateLayerCatalogsId ( {
548
548
loopData : children ,
549
- catalogs,
549
+ catalogs : children ,
550
550
layerIdMapList,
551
551
catalogTypeField,
552
552
layerIdsField,
@@ -635,7 +635,7 @@ export class WebMap extends mapboxgl.Evented {
635
635
delete layer [ 'source-layer' ] ;
636
636
}
637
637
return layer ;
638
- } ) . filter ( item => this . map . getLayer ( item . id ) ) ;
638
+ } ) ;
639
639
if ( this . _appendLayers ) {
640
640
return selfLayers ;
641
641
}
@@ -768,7 +768,7 @@ export class WebMap extends mapboxgl.Evented {
768
768
} , [ ] ) ;
769
769
const allLayersOnMap = this . _getLayersOnMap ( ) ;
770
770
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 ) ;
772
772
const appreciableLayers = this . getAppreciableLayers ( ) ;
773
773
const formatLayerCatalog = this . _createFormatCatalogs ( layerCatalogs , appreciableLayers ) ;
774
774
return formatLayerCatalog ;
Original file line number Diff line number Diff line change @@ -856,4 +856,25 @@ describe('mapboxgl-webmap3.0', () => {
856
856
done ( ) ;
857
857
} ) ;
858
858
} ) ;
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
+ } ) ;
859
880
} ) ;
Original file line number Diff line number Diff line change @@ -2298,4 +2298,104 @@ var msProjectINfo_layerData = JSON.stringify({
2298
2298
isDefaultBottomMap : false ,
2299
2299
status : null ,
2300
2300
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