28
28
*/
29
29
30
30
/*!
31
- * angular-leaflet-directive 0.10.1 2015-11-08
31
+ * angular-leaflet-directive 0.10.1 2015-11-13
32
32
* angular-leaflet-directive - An AngularJS directive to easily interact with Leaflet maps
33
33
* git: https://github.com/tombatossals/angular-leaflet-directive
34
34
*/
@@ -2819,7 +2819,7 @@ angular.module('leaflet-directive').service('leafletMarkersHelpers', ["$rootScop
2819
2819
}
2820
2820
2821
2821
// The markerData.focus property must be true so we update if there wasn't a previous value or it wasn't true
2822
- if ( markerData . focus === true && ( ! isDefined ( oldMarkerData . focus ) || oldMarkerData . focus === false ) || ( isInitializing && markerData . focus === true ) ) {
2822
+ if ( markerData . focus === true && ( markerData . lat !== oldMarkerData . lat || markerData . lng !== oldMarkerData . lng || ! isDefined ( oldMarkerData . focus ) || oldMarkerData . focus === false ) || ( isInitializing && markerData . focus === true ) ) {
2823
2823
// Reopen the popup when focus is still true
2824
2824
marker . openPopup ( ) ;
2825
2825
updatedFocus = true ;
@@ -3451,7 +3451,6 @@ angular.module('leaflet-directive').directive('lfCenter', ["leafletLogger", "$q"
3451
3451
return ;
3452
3452
} else if ( shouldInitializeMapWithBounds ( leafletScope . bounds , centerModel ) ) {
3453
3453
map . fitBounds ( leafletBoundsHelpers . createLeafletBounds ( leafletScope . bounds ) , leafletScope . bounds . options ) ;
3454
- centerModel = map . getCenter ( ) ;
3455
3454
safeApply ( leafletScope , function ( scope ) {
3456
3455
angular . extend ( scope . center , {
3457
3456
lat : map . getCenter ( ) . lat ,
@@ -3484,7 +3483,7 @@ angular.module('leaflet-directive').directive('lfCenter', ["leafletLogger", "$q"
3484
3483
3485
3484
var urlCenterHash ;
3486
3485
var mapReady ;
3487
- if ( attrs . urlHashCenter === 'yes' ) {
3486
+ if ( centerModel . allowUrlHashCenter === true ) {
3488
3487
var extractCenterFromUrl = function ( ) {
3489
3488
var search = $location . search ( ) ;
3490
3489
var centerParam ;
@@ -3495,6 +3494,7 @@ angular.module('leaflet-directive').directive('lfCenter', ["leafletLogger", "$q"
3495
3494
lat : parseFloat ( cParam [ 0 ] ) ,
3496
3495
lng : parseFloat ( cParam [ 1 ] ) ,
3497
3496
zoom : parseInt ( cParam [ 2 ] , 10 ) ,
3497
+ allowUrlHashCenter : centerModel . allowUrlHashCenter ,
3498
3498
} ;
3499
3499
}
3500
3500
}
@@ -3513,6 +3513,7 @@ angular.module('leaflet-directive').directive('lfCenter', ["leafletLogger", "$q"
3513
3513
lat : urlCenter . lat ,
3514
3514
lng : urlCenter . lng ,
3515
3515
zoom : urlCenter . zoom ,
3516
+ allowUrlHashCenter : centerModel . allowUrlHashCenter ,
3516
3517
} ) ;
3517
3518
}
3518
3519
} ) ;
@@ -3573,53 +3574,55 @@ angular.module('leaflet-directive').directive('lfCenter', ["leafletLogger", "$q"
3573
3574
} , true ) ;
3574
3575
3575
3576
map . whenReady ( function ( ) {
3576
- mapReady = true ;
3577
- } ) ;
3577
+ mapReady = true ;
3578
+ } ) ;
3578
3579
3579
3580
map . on ( 'moveend' , function ( /* event */ ) {
3580
- // Resolve the center after the first map position
3581
- _leafletCenter . resolve ( ) ;
3582
- leafletMapEvents . notifyCenterUrlHashChanged ( leafletScope , map , attrs , $location . search ( ) ) ;
3581
+ // Resolve the center after the first map position
3582
+ _leafletCenter . resolve ( ) ;
3583
3583
3584
- if ( isSameCenterOnMap ( centerModel , map ) || leafletScope . settingCenterFromScope ) {
3585
- return ;
3586
- }
3584
+ if ( centerModel . allowUrlHashCenter === true ) {
3585
+ leafletMapEvents . notifyCenterUrlHashChanged ( leafletScope , map , $location . search ( ) ) ;
3586
+ }
3587
3587
3588
- leafletScope . settingCenterFromLeaflet = true ;
3589
- safeApply ( leafletScope , function ( scope ) {
3590
- if ( ! leafletScope . settingCenterFromScope ) {
3591
- angular . extend ( scope . center , {
3592
- lat : map . getCenter ( ) . lat ,
3593
- lng : map . getCenter ( ) . lng ,
3594
- zoom : map . getZoom ( ) ,
3595
- autoDiscover : false ,
3596
- } ) ;
3597
- }
3588
+ if ( isSameCenterOnMap ( centerModel , map ) || leafletScope . settingCenterFromScope ) {
3589
+ return ;
3590
+ }
3598
3591
3599
- leafletMapEvents . notifyCenterChangedToBounds ( leafletScope , map ) ;
3600
- $timeout ( function ( ) {
3601
- leafletScope . settingCenterFromLeaflet = false ;
3602
- } ) ;
3592
+ leafletScope . settingCenterFromLeaflet = true ;
3593
+ safeApply ( leafletScope , function ( scope ) {
3594
+ if ( ! leafletScope . settingCenterFromScope ) {
3595
+ angular . extend ( scope . center , {
3596
+ lat : map . getCenter ( ) . lat ,
3597
+ lng : map . getCenter ( ) . lng ,
3598
+ zoom : map . getZoom ( ) ,
3599
+ autoDiscover : false ,
3603
3600
} ) ;
3601
+ }
3602
+
3603
+ leafletMapEvents . notifyCenterChangedToBounds ( leafletScope , map ) ;
3604
+ $timeout ( function ( ) {
3605
+ leafletScope . settingCenterFromLeaflet = false ;
3604
3606
} ) ;
3607
+ } ) ;
3608
+ } ) ;
3605
3609
3606
3610
if ( centerModel . autoDiscover === true ) {
3607
3611
map . on ( 'locationerror' , function ( ) {
3608
- leafletLogger . warn ( 'The Geolocation API is unauthorized on this page.' , 'center' ) ;
3609
- if ( isValidCenter ( centerModel ) ) {
3610
- map . setView ( [ centerModel . lat , centerModel . lng ] , centerModel . zoom ) ;
3611
- leafletMapEvents . notifyCenterChangedToBounds ( leafletScope , map ) ;
3612
- } else {
3613
- map . setView ( [ defaults . center . lat , defaults . center . lng ] , defaults . center . zoom ) ;
3614
- leafletMapEvents . notifyCenterChangedToBounds ( leafletScope , map ) ;
3615
- }
3616
- } ) ;
3612
+ leafletLogger . warn ( 'The Geolocation API is unauthorized on this page.' , 'center' ) ;
3613
+ if ( isValidCenter ( centerModel ) ) {
3614
+ map . setView ( [ centerModel . lat , centerModel . lng ] , centerModel . zoom ) ;
3615
+ leafletMapEvents . notifyCenterChangedToBounds ( leafletScope , map ) ;
3616
+ } else {
3617
+ map . setView ( [ defaults . center . lat , defaults . center . lng ] , defaults . center . zoom ) ;
3618
+ leafletMapEvents . notifyCenterChangedToBounds ( leafletScope , map ) ;
3619
+ }
3620
+ } ) ;
3617
3621
}
3618
3622
} ) ;
3619
3623
} ,
3620
3624
} ;
3621
- } ]
3622
- ) ;
3625
+ } ] ) ;
3623
3626
3624
3627
angular . module ( 'leaflet-directive' ) . directive ( 'lfControls' , [ "leafletLogger" , "leafletHelpers" , "leafletControlHelpers" , function ( leafletLogger , leafletHelpers , leafletControlHelpers ) {
3625
3628
@@ -3882,7 +3885,7 @@ angular.module('leaflet-directive').directive('lfEvents', ["leafletLogger", "$ro
3882
3885
var isObject = leafletHelpers . isObject ;
3883
3886
var isDefined = leafletHelpers . isDefined ;
3884
3887
var leafletScope = controller . getLeafletScope ( ) ;
3885
- var eventBroadcast = leafletScope . eventBroadcast ;
3888
+ var eventBroadcast = leafletScope . lfEvents ;
3886
3889
var availableMapEvents = leafletMapEvents . getAvailableMapEvents ( ) ;
3887
3890
var addEvents = leafletMapEvents . addEvents ;
3888
3891
@@ -3892,7 +3895,7 @@ angular.module('leaflet-directive').directive('lfEvents', ["leafletLogger", "$ro
3892
3895
var logic = 'broadcast' ;
3893
3896
3894
3897
// We have a possible valid object
3895
- if ( ! isDefined ( eventBroadcast . map ) ) {
3898
+ if ( ! isDefined ( eventBroadcast ) || ! isDefined ( eventBroadcast . map ) ) {
3896
3899
// We do not have events enable/disable do we do nothing (all enabled by default)
3897
3900
mapEvents = availableMapEvents ;
3898
3901
} else if ( ! isObject ( eventBroadcast . map ) ) {
@@ -5622,11 +5625,7 @@ angular.module('leaflet-directive')
5622
5625
scope . $broadcast ( 'boundsChanged' ) ;
5623
5626
} ;
5624
5627
5625
- var _notifyCenterUrlHashChanged = function ( scope , map , attrs , search ) {
5626
- if ( ! isDefined ( attrs . urlHashCenter ) ) {
5627
- return ;
5628
- }
5629
-
5628
+ var _notifyCenterUrlHashChanged = function ( scope , map , search ) {
5630
5629
var center = map . getCenter ( ) ;
5631
5630
var centerUrlHash = ( center . lat ) . toFixed ( 4 ) + ':' + ( center . lng ) . toFixed ( 4 ) + ':' + map . getZoom ( ) ;
5632
5631
if ( ! isDefined ( search . c ) || search . c !== centerUrlHash ) {
0 commit comments