谷歌地图中的javascript变量不可用,太困惑了!

标签 javascript google-maps-api-3

我正在使用谷歌地图v3,并且使用StreetViewService来检查我的标记处的街景时遇到了一个非常令人困惑的情况。在我的“loadMap”函数中,我使用以下命令运行此检查:

//more 'loadMap' function code above and below this

var streetViewCheck = new google.maps.StreetViewService();  
streetViewCheck.getPanoramaByLocation(latlng, 50, function(result, status) {
    if (status == google.maps.StreetViewStatus.ZERO_RESULTS) {
        streetViewAvailable = 0;        
    }else{
        streetViewAvailable = 1;
    }
});
alert(streetViewAvailable);

上面的警报抛出此 js 错误消息“streetViewAvailable 未定义”,并且该变量在整个函数中的任何位置都不可用。但是,如果我将警报放在这里:

var streetViewCheck = new google.maps.StreetViewService();  
streetViewCheck.getPanoramaByLocation(latlng, 50, function(result, status) {
    if (status == google.maps.StreetViewStatus.ZERO_RESULTS) {
        streetViewAvailable = 0;
        alert(streetViewAvailable);     
    }else{
        streetViewAvailable = 1;
        alert(streetViewAvailable);
    }
});

它们正确地发出警报(即,如果街景不可用,则为 0;如果街景可用,则为 1),但同样,该变量在函数中的任何位置都不可用。现在真正令人困惑的部分是,变量在其他函数中可用

这到底是怎么回事?为什么我的变量没有在初始化它的函数中定义,但在其他函数中定义并可用。我不是世界上最伟大的程序员(但也不是最差的!)但这让我完全难住了。我尝试了很多选项,但都得到了相同的结果(即,在我的新 google.maps.StreetViewService(); 代码上方初始化变量“streetViewAvailable”,为它们分配值“yes”和“no”而不是 1 和0,使它们成为局部变量而不是全局变量(var streetViewAvailable...),以及前面提到的所有组合,但都具有相同的结果,未在此函数中定义。

请帮助我理解这一点,它也让我们的其他编码员难住了,它违背了所有逻辑!预先非常感谢,我希望有人能在我的大脑崩溃之前阐明这一点!!!

最佳答案

//more 'loadMap' function code above and below this
var streetViewAvailable;

var streetViewCheck = new google.maps.StreetViewService();  
streetViewCheck.getPanoramaByLocation(latlng, 50, function(result, status) {
    if (status == google.maps.StreetViewStatus.ZERO_RESULTS) {
        streetViewAvailable = 0;        
    }else{
        streetViewAvailable = 1;
    }
});
alert(streetViewAvailable);

试试这个 - 你真的忘记声明 streetViewAvailable

关于谷歌地图中的javascript变量不可用,太困惑了!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5936573/

相关文章:

javascript - 调用 window.history.back() 时如何维护用户输入?

javascript - Google map api 自动完成 - 获取一个城市(或几个城市)的位置

Javascript id 作为 href 中的参数

javascript - 鼠标悬停时突出显示对象无法正常工作

javascript - 如何在形状上显示上下文菜单?

javascript - 未定义的异步 Google Maps API v3 不是函数

browser - Google Maps api v3 - 隐藏在默认平板电脑 Android 浏览器中的控件

javascript - 右键单击停止传播

javascript - 来自 Bootstrap 表的基于 Ajax 的数据的数据单元格上的工具提示

javascript - 如何测试自定义 Koa 中间件的错误处理?