@@ -8,19 +8,19 @@ angular.module("leaflet-directive", []).directive('leaflet', ["$q", "leafletData
88 restrict : "EA" ,
99 replace : true ,
1010 scope : {
11- center : '=center' ,
12- defaults : '=defaults' ,
13- maxbounds : '=maxbounds' ,
14- bounds : '=bounds' ,
15- markers : '=markers' ,
16- legend : '=legend' ,
17- geojson : '=geojson' ,
18- paths : '=paths' ,
19- tiles : '=tiles' ,
20- layers : '=layers' ,
21- controls : '=controls' ,
22- decorations : '=decorations' ,
23- eventBroadcast : '=eventBroadcast'
11+ center : '=center' ,
12+ defaults : '=defaults' ,
13+ maxbounds : '=maxbounds' ,
14+ bounds : '=bounds' ,
15+ markers : '=markers' ,
16+ legend : '=legend' ,
17+ geojson : '=geojson' ,
18+ paths : '=paths' ,
19+ tiles : '=tiles' ,
20+ layers : '=layers' ,
21+ controls : '=controls' ,
22+ decorations : '=decorations' ,
23+ eventBroadcast : '=eventBroadcast'
2424 } ,
2525 transclude : true ,
2626 template : '<div class="angular-leaflet-map"><div ng-transclude></div></div>' ,
@@ -73,15 +73,19 @@ angular.module("leaflet-directive", []).directive('leaflet', ["$q", "leafletData
7373 }
7474
7575 // Set zoom control configuration
76- if ( isDefined ( map . zoomControl ) && isDefined ( defaults . zoomControlPosition ) ) {
76+ if ( isDefined ( map . zoomControl ) &&
77+ isDefined ( defaults . zoomControlPosition ) ) {
7778 map . zoomControl . setPosition ( defaults . zoomControlPosition ) ;
7879 }
7980
80- if ( isDefined ( map . zoomControl ) && defaults . zoomControl === false ) {
81+ if ( isDefined ( map . zoomControl ) &&
82+ defaults . zoomControl === false ) {
8183 map . zoomControl . removeFrom ( map ) ;
8284 }
8385
84- if ( isDefined ( map . zoomsliderControl ) && isDefined ( defaults . zoomsliderControl ) && defaults . zoomsliderControl === false ) {
86+ if ( isDefined ( map . zoomsliderControl ) &&
87+ isDefined ( defaults . zoomsliderControl ) &&
88+ defaults . zoomsliderControl === false ) {
8589 map . zoomsliderControl . removeFrom ( map ) ;
8690 }
8791
@@ -103,6 +107,9 @@ angular.module("leaflet-directive", []).directive('leaflet', ["$q", "leafletData
103107 } ) ;
104108
105109 scope . $on ( '$destroy' , function ( ) {
110+ leafletData . getMap ( ) . then ( function ( map ) {
111+ map . remove ( ) ;
112+ } ) ;
106113 leafletData . unresolveMap ( attrs . id ) ;
107114 } ) ;
108115 }
@@ -995,9 +1002,9 @@ angular.module("leaflet-directive").directive('paths', ["$log", "$q", "leafletDa
9951002 }
9961003 }
9971004
998- } ) ;
1005+ } , true ) ;
9991006
1000- } , true ) ;
1007+ } ) ;
10011008 } ) ;
10021009 }
10031010 } ;
@@ -3406,8 +3413,11 @@ angular.module("leaflet-directive").factory('leafletHelpers', ["$q", "$log", fun
34063413 isSameCenterOnMap : function ( centerModel , map ) {
34073414 var mapCenter = map . getCenter ( ) ;
34083415 var zoom = map . getZoom ( ) ;
3409- if ( mapCenter . lat . toFixed ( 4 ) === centerModel . lat . toFixed ( 4 ) && mapCenter . lng . toFixed ( 4 ) === centerModel . lng . toFixed ( 4 ) && zoom === centerModel . zoom ) {
3410- return true ;
3416+ if ( centerModel . lat && centerModel . lng &&
3417+ mapCenter . lat . toFixed ( 4 ) === centerModel . lat . toFixed ( 4 ) &&
3418+ mapCenter . lng . toFixed ( 4 ) === centerModel . lng . toFixed ( 4 ) &&
3419+ zoom === centerModel . zoom ) {
3420+ return true ;
34113421 }
34123422 return false ;
34133423 } ,
0 commit comments