7
7
var App = ( function ( $ , publ ) {
8
8
9
9
var map , vector , bounds , contents , toolbar , geolocation = null ;
10
+ var maps = [ ] ;
10
11
var features = [ ] ;
11
12
var layerArr = [ ] ;
12
13
var filters = {
@@ -210,6 +211,9 @@ var App = (function ($, publ) {
210
211
publ . zoomToExtent ( ) ;
211
212
map . on ( 'moveend' , publ . updateFilter ) ;
212
213
} ) ;
214
+
215
+ // Handle multiple maps per page
216
+ maps . push ( map ) ;
213
217
} ;
214
218
215
219
/**
@@ -344,12 +348,14 @@ var App = (function ($, publ) {
344
348
if ( ! force && ( filters . distance || filters . location ) ) {
345
349
// Do not zoom to extent but show the previous extent stored as cookie
346
350
var parts = ( getCookie ( "_redmine_gtt_permalink" ) ) . split ( "/" ) ;
347
- map . getView ( ) . setZoom ( parseInt ( parts [ 0 ] , 10 ) ) ;
348
- map . getView ( ) . setCenter ( ol . proj . transform ( [
349
- parseFloat ( parts [ 1 ] ) ,
350
- parseFloat ( parts [ 2 ] )
351
- ] , 'EPSG:4326' , 'EPSG:3857' ) ) ;
352
- map . getView ( ) . setRotation ( parseFloat ( parts [ 3 ] ) ) ;
351
+ maps . forEach ( function ( m ) {
352
+ m . getView ( ) . setZoom ( parseInt ( parts [ 0 ] , 10 ) ) ;
353
+ m . getView ( ) . setCenter ( ol . proj . transform ( [
354
+ parseFloat ( parts [ 1 ] ) ,
355
+ parseFloat ( parts [ 2 ] )
356
+ ] , 'EPSG:4326' , 'EPSG:3857' ) ) ;
357
+ m . getView ( ) . setRotation ( parseFloat ( parts [ 3 ] ) ) ;
358
+ } )
353
359
}
354
360
else if ( vector . getSource ( ) . getFeatures ( ) . length > 0 ) {
355
361
var extent = ol . extent . createEmpty ( ) ;
@@ -358,14 +364,20 @@ var App = (function ($, publ) {
358
364
vector . getSource ( ) . getFeatures ( ) . forEach ( function ( feature ) {
359
365
ol . extent . extend ( extent , feature . getGeometry ( ) . getExtent ( ) ) ;
360
366
} ) ;
361
- map . getView ( ) . fit ( extent , map . getSize ( ) ) ;
367
+ maps . forEach ( function ( m ) {
368
+ m . getView ( ) . fit ( extent , m . getSize ( ) ) ;
369
+ } ) ;
362
370
}
363
371
else if ( bounds . getSource ( ) . getFeatures ( ) . length > 0 ) {
364
- map . getView ( ) . fit ( bounds . getSource ( ) . getExtent ( ) , map . getSize ( ) ) ;
372
+ maps . forEach ( function ( m ) {
373
+ m . getView ( ) . fit ( bounds . getSource ( ) . getExtent ( ) , m . getSize ( ) ) ;
374
+ } ) ;
365
375
}
366
376
else if ( geolocation ) {
367
377
geolocation . once ( 'change:position' , function ( error ) {
368
- map . getView ( ) . setCenter ( geolocation . getPosition ( ) ) ;
378
+ maps . forEach ( function ( m ) {
379
+ m . getView ( ) . setCenter ( geolocation . getPosition ( ) ) ;
380
+ } ) ;
369
381
} ) ;
370
382
}
371
383
} ;
0 commit comments