@@ -636,6 +636,7 @@ describe('openlayers_GraphicLayer', () => {
636
636
}
637
637
} ) ;
638
638
} ) ;
639
+
639
640
it ( 'onCLick' , ( done ) => {
640
641
const map = new Map ( {
641
642
target : 'map' ,
@@ -652,41 +653,40 @@ describe('openlayers_GraphicLayer', () => {
652
653
highlightColor : [ 255 , 0 , 0 , 255 ] ,
653
654
radius : 20
654
655
} ;
655
- map . once ( 'postrender' , function ( ) {
656
- var graphicLayer = new ImageLayer ( {
657
- source : new GraphicSource ( {
658
- render : 'webgl' ,
659
- graphics : graphics ,
660
- color : graphicStyle . color ,
661
- highlightColor : graphicStyle . highlightColor ,
662
- radius : graphicStyle . radius ,
663
- map : map ,
664
- onClick : function ( graphic ) {
665
- if ( graphic ) {
666
- graphic . lngLat ;
667
- }
656
+ var graphicLayer = new ImageLayer ( {
657
+ source : new GraphicSource ( {
658
+ render : 'webgl' ,
659
+ graphics : graphics ,
660
+ color : graphicStyle . color ,
661
+ highlightColor : graphicStyle . highlightColor ,
662
+ radius : graphicStyle . radius ,
663
+ map : map ,
664
+ onClick : function ( graphic ) {
665
+ if ( graphic ) {
666
+ graphic . lngLat ;
668
667
}
669
- } )
670
- } ) ;
671
- map . addLayer ( graphicLayer ) ;
672
- graphicLayer . on ( 'postrender' , function ( ) {
673
- const source = graphicLayer . getSource ( ) ;
674
- if ( source . renderer ) {
675
- source . _forEachFeatureAtCoordinate ( [ 0 , 0 ] , 1 , ( result ) => {
676
- expect ( result ) . not . toBeNull ( ) ;
677
- } ) ;
678
- const res = source . findGraphicByPixel ( { pixel : [ 0 , 0 ] } , source ) ;
679
- expect ( res ) . toBeUndefined ( ) ;
680
- const res1 = source . getDeckglArguments ( source , { pixel : [ 0 , 0 ] } , graphics [ 0 ] ) ;
681
- expect ( res1 ) . not . toBeNull ( ) ;
682
- let pixel = map . getPixelFromCoordinate ( [ 0 , 0 ] ) ;
683
- map . forEachFeatureAtPixel ( pixel , ( graphic , layer ) => {
684
- expect ( graphic ) . toBe ( graphics [ 0 ] ) ;
685
- expect ( layer ) . toBe ( graphicLayer ) ;
686
- } ) ;
687
- done ( ) ;
688
668
}
689
- } ) ;
669
+ } )
670
+ } ) ;
671
+ map . addLayer ( graphicLayer ) ;
672
+ const key = graphicLayer . on ( 'postrender' , function ( ) {
673
+ const source = graphicLayer . getSource ( ) ;
674
+ if ( source . renderer ) {
675
+ unByKey ( key ) ;
676
+ source . _forEachFeatureAtCoordinate ( [ 0 , 0 ] , 1 , ( result ) => {
677
+ expect ( result ) . not . toBeNull ( ) ;
678
+ } ) ;
679
+ const res = source . findGraphicByPixel ( { pixel : [ 0 , 0 ] } , source ) ;
680
+ expect ( res ) . toBeUndefined ( ) ;
681
+ const res1 = source . getDeckglArguments ( source , { pixel : [ 0 , 0 ] } , graphics [ 0 ] ) ;
682
+ expect ( res1 ) . not . toBeNull ( ) ;
683
+ let pixel = map . getPixelFromCoordinate ( [ 0 , 0 ] ) ;
684
+ map . forEachFeatureAtPixel ( pixel , ( graphic , layer ) => {
685
+ expect ( graphic ) . toBe ( graphics [ 0 ] ) ;
686
+ expect ( layer ) . toBe ( graphicLayer ) ;
687
+ } ) ;
688
+ done ( ) ;
689
+ }
690
690
} ) ;
691
691
} ) ;
692
692
} ) ;
0 commit comments