@@ -120,6 +120,32 @@ function Geo(props) {
120
120
} )
121
121
}
122
122
123
+ const loadLayers = function ( map ) {
124
+ if ( map ) {
125
+ console . log ( "LoadLayer" )
126
+ // Validate and create new layers
127
+ const layers = Array . isArray ( props . layers ) ? props . layers :
128
+ props . defaults && Array . isArray ( props . defaults . layers ) ? props . defaults . layers : [ ] ;
129
+ const validatedLayers = layers . filter ( layer => layer !== null && layer !== undefined ) ;
130
+ const sortedLayers = validatedLayers
131
+ . sort ( ( a , b ) => ( a . order || 0 ) - ( b . order || 0 ) )
132
+ . map ( createLayer )
133
+ . filter ( layer => layer !== null && layer !== undefined ) ;
134
+ map . getLayers ( ) . clear ( ) ;
135
+ sortedLayers . forEach ( layer => { if ( layer ) map . addLayer ( layer ) } ) ;
136
+
137
+ //TrackerVector
138
+ if ( featureEnabled ( 'tracker' ) ) {
139
+ map . addLayer ( trackerVector )
140
+ }
141
+ //Add drawLayer and values if set
142
+ if ( featureEnabled ( 'draw' ) ) {
143
+ map . addLayer ( drawVector )
144
+ }
145
+ fireEvent ( "map:layers" , layers )
146
+ }
147
+ }
148
+
123
149
//Configuration of Map component, changing watch props will rebuild map object
124
150
useEffect ( ( ) => {
125
151
if ( geoRef ) {
@@ -557,6 +583,8 @@ function Geo(props) {
557
583
// Notification Control
558
584
olMap . addControl ( notification ) ;
559
585
586
+ loadLayers ( olMap )
587
+
560
588
//Add map init event
561
589
fireEvent ( 'map:init' , olMap ) ;
562
590
@@ -614,29 +642,7 @@ function Geo(props) {
614
642
615
643
// Dynamic layer updating
616
644
useEffect ( ( ) => {
617
- if ( map ) {
618
- // Validate and create new layers
619
- const layers = Array . isArray ( props . layers ) ? props . layers :
620
- props . defaults && Array . isArray ( props . defaults . layers ) ? props . defaults . layers : [ ] ;
621
- const validatedLayers = layers . filter ( layer => layer !== null && layer !== undefined ) ;
622
- const sortedLayers = validatedLayers
623
- . sort ( ( a , b ) => ( a . order || 0 ) - ( b . order || 0 ) )
624
- . map ( createLayer )
625
- . filter ( layer => layer !== null && layer !== undefined ) ;
626
- map . getLayers ( ) . clear ( ) ;
627
- sortedLayers . forEach ( layer => { if ( layer ) map . addLayer ( layer ) } ) ;
628
-
629
- //TrackerVector
630
- if ( featureEnabled ( 'tracker' ) ) {
631
- map . addLayer ( trackerVector )
632
- }
633
- //Add drawLayer and values if set
634
- if ( featureEnabled ( 'draw' ) ) {
635
- map . addLayer ( drawVector )
636
- }
637
-
638
- fireEvent ( "map:layers" , layers )
639
- }
645
+ loadLayers ( map )
640
646
} , [ map , props . layers ] ) ; // Re-evaluate when layers change
641
647
642
648
//GPS location
0 commit comments