Ox.Map: don't fail when calling panToPlace, selectPlace or zoomToPlace before places have loaded

This commit is contained in:
rolux 2012-06-19 17:05:20 +02:00
parent 3687620814
commit a4fedfd924

View file

@ -1033,9 +1033,16 @@ Ox.Map = function(options, self) {
};
function panToPlace() {
var place = getSelectedPlace();
var place;
if (!self.loaded) {
setTimeout(function() {
panToPlace();
}, 100);
} else {
place = getSelectedPlace();
place && self.map.panTo(place.center);
}
}
function parseGeodata(data) {
var bounds = data.geometry.bounds || data.geometry.viewport,
@ -1172,12 +1179,13 @@ Ox.Map = function(options, self) {
function selectPlace(id, zoom) {
// id can be null (deselect)
var place, selected = getSelectedMarker();
var place, selected;
if (!self.loaded) {
setTimeout(function() {
selectPlace(id, zoom)
}, 1000);
selectPlace(id, zoom);
}, 100);
} else {
selected = getSelectedMarker();
Ox.Log('Map', 'Ox.Map selectPlace()', id, selected);
if (id != selected) {
place = getPlaceById(selected);
@ -1222,7 +1230,7 @@ Ox.Map = function(options, self) {
self.options.selected = id;
setPlaceControls(place);
setStatus();
that.triggerEvent('selectplace', place); // DEPRECATED
that.triggerEvent('selectplace', place); // FIXME: DEPRECATED
that.triggerEvent('select', {place: place});
}
};
@ -1429,9 +1437,16 @@ Ox.Map = function(options, self) {
}
function zoomToPlace() {
var place = getSelectedPlace();
var place;
if (!self.loaded) {
setTimeout(function() {
zoomToPlace();
}, 100);
} else {
place = getSelectedPlace();
place && self.map.fitBounds(place.bounds);
}
}
/*@
addPlace <f> addPlace