@@ -760,19 +760,29 @@ export class MapTrekVizComponent implements OnDestroy, OnChanges {
760
760
} ) ;
761
761
762
762
this . map . on ( 'click' , 'sensitive-areas' , ( e : MapLayerMouseEvent ) => {
763
- if ( e . features && e . features . length > 0 ) {
764
- const feature = e . features [ 0 ] ;
765
- const name = feature . properties ! [ 'name' ] ;
763
+ const features : any = this . map
764
+ . queryRenderedFeatures ( e . point )
765
+ . filter ( ( feature : any ) => {
766
+ return feature . source !== 'sensitive-areas' ;
767
+ } ) ;
768
+ if ( ! features || ! ( features . length > 0 ) ) {
769
+ if ( e . features && e . features . length > 0 ) {
770
+ const feature = e . features [ 0 ] ;
771
+ const name = feature . properties ! [ 'name' ] ;
772
+
773
+ if ( name ) {
774
+ if ( this . sensitiveAreaPopup ) {
775
+ this . sensitiveAreaPopup . remove ( ) ;
776
+ }
766
777
767
- if ( name ) {
768
- if ( this . sensitiveAreaPopup ) {
769
- this . sensitiveAreaPopup . remove ( ) ;
778
+ this . sensitiveAreaPopup = new Popup ( {
779
+ closeOnClick : false ,
780
+ className : 'sensitive-area-popup'
781
+ } )
782
+ . setLngLat ( e . lngLat )
783
+ . setHTML ( `<b>${ name } </b>` )
784
+ . addTo ( this . map ) ;
770
785
}
771
-
772
- this . sensitiveAreaPopup = new Popup ( { closeOnClick : false } )
773
- . setLngLat ( e . lngLat )
774
- . setHTML ( `<b>${ name } </b>` )
775
- . addTo ( this . map ) ;
776
786
}
777
787
}
778
788
} ) ;
@@ -1083,6 +1093,9 @@ export class MapTrekVizComponent implements OnDestroy, OnChanges {
1083
1093
checked ? 'visible' : 'none'
1084
1094
)
1085
1095
) ;
1096
+ if ( layersName === 'sensitive-areas' && this . sensitiveAreaPopup ) {
1097
+ this . sensitiveAreaPopup . remove ( ) ;
1098
+ }
1086
1099
}
1087
1100
1088
1101
public handleClustersInteraction ( ) : void {
0 commit comments