我在做下一個:在getCurrentPosition函數中設置數據
第一件事 - 我檢查是否已經加載了緯度和經度數據。如果我有,我將它保存到名爲「location」的數組中。
第二件事 - 如果我沒有任何加載的數據,我試圖獲得當前位置。之後,我試圖保存當前位置的經度和緯度。 最後,我打電話給setMap();函數,我檢查位置數組以及我在哪裏生成地圖。
問題:
嗯,我說這裏面......「getCurrentPosition」,我想設置當前位置到「位置」陣列,在那之後,我試圖把裏面的值的setMap();功能。這是問題,但只有當我在「getCurrentPosition」中設置「位置」值時。如果我之前手動設置「位置」值(從「數據」數組),一切工作正常。 此外,當我在「getCurrentPosition」中調用setMap()函數時,一切正常......但是當我從外部調用它時,將無法工作。 有人可以解釋我發生了什麼,我該怎麼辦?
這裏是我的代碼:
location = new Array();
if (data.lat) {
location['lat'] = data.lat;
location['lng'] = data.lng;
} else {
if (!navigator.geolocation) {
//
} else {
navigator.geolocation.getCurrentPosition(function(position) {
location['lat'] = position.coords.latitude;
location['lng'] = position.coords.longitude;
});
}
}
setMap();
謝謝。
好吧,我發現了一些有趣的在這裏: http://stackoverflow.com/questions/7189492/javascript-assigning-the-return-value-of-a-callback-function-to-global - 變化 – dperitch