我在做下一个:在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