Skip to content

Commit 8b5e3c0

Browse files
committed
new version
1 parent d218583 commit 8b5e3c0

File tree

3 files changed

+89
-91
lines changed

3 files changed

+89
-91
lines changed

dist/angular-leaflet-directive.js

Lines changed: 43 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
*/
2929

3030
/*!
31-
* angular-leaflet-directive 0.10.1 2015-11-08
31+
* angular-leaflet-directive 0.10.1 2015-11-13
3232
* angular-leaflet-directive - An AngularJS directive to easily interact with Leaflet maps
3333
* git: https://github.com/tombatossals/angular-leaflet-directive
3434
*/
@@ -2819,7 +2819,7 @@ angular.module('leaflet-directive').service('leafletMarkersHelpers', ["$rootScop
28192819
}
28202820

28212821
// 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)) {
28232823
// Reopen the popup when focus is still true
28242824
marker.openPopup();
28252825
updatedFocus = true;
@@ -3451,7 +3451,6 @@ angular.module('leaflet-directive').directive('lfCenter', ["leafletLogger", "$q"
34513451
return;
34523452
} else if (shouldInitializeMapWithBounds(leafletScope.bounds, centerModel)) {
34533453
map.fitBounds(leafletBoundsHelpers.createLeafletBounds(leafletScope.bounds), leafletScope.bounds.options);
3454-
centerModel = map.getCenter();
34553454
safeApply(leafletScope, function(scope) {
34563455
angular.extend(scope.center, {
34573456
lat: map.getCenter().lat,
@@ -3484,7 +3483,7 @@ angular.module('leaflet-directive').directive('lfCenter', ["leafletLogger", "$q"
34843483

34853484
var urlCenterHash;
34863485
var mapReady;
3487-
if (attrs.urlHashCenter === 'yes') {
3486+
if (centerModel.allowUrlHashCenter === true) {
34883487
var extractCenterFromUrl = function() {
34893488
var search = $location.search();
34903489
var centerParam;
@@ -3495,6 +3494,7 @@ angular.module('leaflet-directive').directive('lfCenter', ["leafletLogger", "$q"
34953494
lat: parseFloat(cParam[0]),
34963495
lng: parseFloat(cParam[1]),
34973496
zoom: parseInt(cParam[2], 10),
3497+
allowUrlHashCenter: centerModel.allowUrlHashCenter,
34983498
};
34993499
}
35003500
}
@@ -3513,6 +3513,7 @@ angular.module('leaflet-directive').directive('lfCenter', ["leafletLogger", "$q"
35133513
lat: urlCenter.lat,
35143514
lng: urlCenter.lng,
35153515
zoom: urlCenter.zoom,
3516+
allowUrlHashCenter: centerModel.allowUrlHashCenter,
35163517
});
35173518
}
35183519
});
@@ -3573,53 +3574,55 @@ angular.module('leaflet-directive').directive('lfCenter', ["leafletLogger", "$q"
35733574
}, true);
35743575

35753576
map.whenReady(function() {
3576-
mapReady = true;
3577-
});
3577+
mapReady = true;
3578+
});
35783579

35793580
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();
35833583

3584-
if (isSameCenterOnMap(centerModel, map) || leafletScope.settingCenterFromScope) {
3585-
return;
3586-
}
3584+
if (centerModel.allowUrlHashCenter === true) {
3585+
leafletMapEvents.notifyCenterUrlHashChanged(leafletScope, map, $location.search());
3586+
}
35873587

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+
}
35983591

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,
36033600
});
3601+
}
3602+
3603+
leafletMapEvents.notifyCenterChangedToBounds(leafletScope, map);
3604+
$timeout(function() {
3605+
leafletScope.settingCenterFromLeaflet = false;
36043606
});
3607+
});
3608+
});
36053609

36063610
if (centerModel.autoDiscover === true) {
36073611
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+
});
36173621
}
36183622
});
36193623
},
36203624
};
3621-
}]
3622-
);
3625+
}]);
36233626

36243627
angular.module('leaflet-directive').directive('lfControls', ["leafletLogger", "leafletHelpers", "leafletControlHelpers", function(leafletLogger, leafletHelpers, leafletControlHelpers) {
36253628

@@ -3882,7 +3885,7 @@ angular.module('leaflet-directive').directive('lfEvents', ["leafletLogger", "$ro
38823885
var isObject = leafletHelpers.isObject;
38833886
var isDefined = leafletHelpers.isDefined;
38843887
var leafletScope = controller.getLeafletScope();
3885-
var eventBroadcast = leafletScope.eventBroadcast;
3888+
var eventBroadcast = leafletScope.lfEvents;
38863889
var availableMapEvents = leafletMapEvents.getAvailableMapEvents();
38873890
var addEvents = leafletMapEvents.addEvents;
38883891

@@ -3892,7 +3895,7 @@ angular.module('leaflet-directive').directive('lfEvents', ["leafletLogger", "$ro
38923895
var logic = 'broadcast';
38933896

38943897
// We have a possible valid object
3895-
if (!isDefined(eventBroadcast.map)) {
3898+
if (!isDefined(eventBroadcast) || !isDefined(eventBroadcast.map)) {
38963899
// We do not have events enable/disable do we do nothing (all enabled by default)
38973900
mapEvents = availableMapEvents;
38983901
} else if (!isObject(eventBroadcast.map)) {
@@ -5622,11 +5625,7 @@ angular.module('leaflet-directive')
56225625
scope.$broadcast('boundsChanged');
56235626
};
56245627

5625-
var _notifyCenterUrlHashChanged = function(scope, map, attrs, search) {
5626-
if (!isDefined(attrs.urlHashCenter)) {
5627-
return;
5628-
}
5629-
5628+
var _notifyCenterUrlHashChanged = function(scope, map, search) {
56305629
var center = map.getCenter();
56315630
var centerUrlHash = (center.lat).toFixed(4) + ':' + (center.lng).toFixed(4) + ':' + map.getZoom();
56325631
if (!isDefined(search.c) || search.c !== centerUrlHash) {

0 commit comments

Comments
 (0)