所以我有一个简单的initialize()
函数,它工作正常,直到我需要能够更新lat& lng坐标。我选择用我的初始lat&定义变量来做到这一点。 lng坐标并将它们移动到initialize()
函数之外(在里面引用),并用更新的坐标更新这些变量的值(然后重新初始化地图)。
我不知道为什么,但是现在我刷新页面时没有加载地图。我改变它以使用变量定义函数内部的坐标,它工作正常。只有当我在函数之外定义它们时才会起作用。
但是如果你在控制台中调用initialize()
,那就不会像在此更改之前那样在页面加载时调用它。
代码看起来基本上就像这个
var latcoord= 1234;
var lngcoord= 1234;
function initialize() {
var myLatlng = new google.maps.LatLng(latcoord, lngcoord);
//ETC
}
这是我用来重现问题的小提琴:here
那么我怎样才能做到这一点?如果我没有在initialize()
函数之外定义它,那么我无法更新变量并显示新坐标。
答案 0 :(得分:1)
这与变量范围无关,也与您正在使用的值有关。
if(latcoord === false) {// DOESN'T WORK
latcoord = 120;
lngcoord = 100;
}
使用“DOES WORK”块时,您将为其分配值'false',这将使Maps API将其视为{0,0}。当你为它们分配{120,100}时,你无法获得有意义的结果,因为{120,100}在地球上没有有意义的表示(最大纬度为90 - 北极)。
对于展示此问题的小提琴,请参阅using {0,0} outside the function to get the same effect as your 'inside the function' example和using meaningful values for Lat/Long outside the function。