File tree Expand file tree Collapse file tree 4 files changed +31
-4
lines changed Expand file tree Collapse file tree 4 files changed +31
-4
lines changed Original file line number Diff line number Diff line change @@ -60,9 +60,9 @@ export class CustomOverlayLayer {
60
60
// 移除 layer 事件
61
61
off ( ) { }
62
62
63
- // 查询足查询参数的可见要素的 GeoJSON 要素对象数组
63
+ // 查询足查询参数的可见要素的 GeoJSON 要素对象数组,如果图层不可见则返回空
64
64
queryRenderedFeatures ( ) { }
65
65
66
- // 查询满足查询参数的指定矢量切片或 GeoJSON 源中的要素
66
+ // 查询满足查询参数的指定矢量切片或 GeoJSON 源中的要素,如果图层不可见则返回空
67
67
querySourceFeatures ( ) { }
68
68
}
Original file line number Diff line number Diff line change @@ -292,7 +292,7 @@ export class L7Layer extends CustomOverlayLayer {
292
292
}
293
293
294
294
queryRenderedFeatures ( geometry , options , cb ) {
295
- if ( ! this . l7layer ) {
295
+ if ( ! this . l7layer || ! this . l7layer . rawConfig . visible ) {
296
296
return cb ( [ ] ) ;
297
297
}
298
298
let box = geometry ;
@@ -321,7 +321,7 @@ export class L7Layer extends CustomOverlayLayer {
321
321
}
322
322
323
323
querySourceFeatures ( ) {
324
- if ( ! this . l7layer ) {
324
+ if ( ! this . l7layer || ! this . l7layer . rawConfig . visible ) {
325
325
return [ ] ;
326
326
}
327
327
const layerSource = this . l7layer . layerSource ;
Original file line number Diff line number Diff line change @@ -507,6 +507,28 @@ describe('mapboxgl L7Layer', () => {
507
507
const nextLayerFilter = layer . getFilter ( ) ;
508
508
expect ( nextLayerFilter . field ) . toEqual ( [ ] ) ;
509
509
expect ( nextLayerFilter . values ( '1' ) ) . toBeTruthy ( ) ;
510
+
511
+ let queryFeatures ;
512
+ const queryResult = {
513
+ cb : function ( data ) {
514
+ queryFeatures = data ;
515
+ }
516
+ } ;
517
+ spyOn ( queryResult , 'cb' ) . and . callThrough ( ) ;
518
+ layer . queryRenderedFeatures ( [ 0 , 0 ] , { } , queryResult . cb ) ;
519
+ expect ( queryResult . cb . calls . count ( ) ) . toBe ( 1 ) ;
520
+ expect ( queryFeatures ) . not . toBeUndefined ( ) ;
521
+ expect ( queryFeatures . length ) . toBeGreaterThan ( 0 ) ;
522
+ expect ( layer . querySourceFeatures ( ) . length ) . toBeGreaterThan ( 0 ) ;
523
+ expect ( layer . getLayer ( ) . layout . visibility ) . toBe ( 'visible' ) ;
524
+ layer . setLayoutProperty ( 'visibility' , 'none' ) ;
525
+ expect ( layer . getLayer ( ) . layout . visibility ) . toBe ( 'none' ) ;
526
+ expect ( layer . querySourceFeatures ( ) . length ) . toBe ( 0 ) ;
527
+ layer . queryRenderedFeatures ( [ 0 , 0 ] , { } , queryResult . cb ) ;
528
+ expect ( queryResult . cb . calls . count ( ) ) . toBe ( 2 ) ;
529
+ expect ( queryFeatures . length ) . toBe ( 0 ) ;
530
+ layer . setLayoutProperty ( 'visibility' , 'visible' ) ;
531
+
510
532
spyOn ( l7Layer , 'on' ) ;
511
533
spyOn ( l7Layer , 'once' ) ;
512
534
spyOn ( l7Layer , 'off' ) ;
Original file line number Diff line number Diff line change @@ -57,6 +57,9 @@ class Layer {
57
57
dataArray : [ ]
58
58
}
59
59
} ;
60
+ if ( this . rawConfig . visible === void 0 ) {
61
+ this . rawConfig . visible = true ;
62
+ }
60
63
}
61
64
source ( data , options = { } ) {
62
65
const parser = options . parser || { type : "geojson" } ;
@@ -124,9 +127,11 @@ class Layer {
124
127
return this ;
125
128
}
126
129
show ( ) {
130
+ this . rawConfig . visible = true ;
127
131
return this ;
128
132
}
129
133
hide ( ) {
134
+ this . rawConfig . visible = false ;
130
135
return this ;
131
136
}
132
137
getSource ( ) {
You can’t perform that action at this time.
0 commit comments