Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谷歌地图/Javascript问题与地图';未定义';_Javascript_Google Maps - Fatal编程技术网

谷歌地图/Javascript问题与地图';未定义';

谷歌地图/Javascript问题与地图';未定义';,javascript,google-maps,Javascript,Google Maps,希望有人能解决这个(希望是简单的)问题,我有 我们有一个谷歌地图从一个网络服务中提取地理编码数据,它返回一系列结果 此外,它还对用户的英国邮政编码进行地理编码,并在其在地图上的位置上绘制一个黄色的“家”标记 这在IE中可以正常工作,但在Safari或Firefox中不会显示标记 在Firefox错误控制台中,我们返回“映射未定义”。我已经缩小了范围,但还没有找到解决这个问题的方法 ~注意,我的代码还没有经过优化,所以可能有一些不必要的js代码。但我希望能够在短期内与我们的用户进行测试~ 链接到服

希望有人能解决这个(希望是简单的)问题,我有

我们有一个谷歌地图从一个网络服务中提取地理编码数据,它返回一系列结果

此外,它还对用户的英国邮政编码进行地理编码,并在其在地图上的位置上绘制一个黄色的“家”标记

这在IE中可以正常工作,但在Safari或Firefox中不会显示标记

在Firefox错误控制台中,我们返回“映射未定义”。我已经缩小了范围,但还没有找到解决这个问题的方法

~注意,我的代码还没有经过优化,所以可能有一些不必要的js代码。但我希望能够在短期内与我们的用户进行测试~

链接到服务

输入CV37 6HX作为测试邮政编码,并在搜索前从任何单选按钮选项中进行选择

干杯


Simon

当我分析IE7中的错误时,我发现当您得到触发localSearch2.setSearchCompleteCallback的回调时,map变量未定义

在开始搜索之前,应检查初始化映射的函数loadMap()是否已成功完成。我看到你用

google.setOnLoadCallback(loadMap);
这将仅在“加载”事件时加载地图。在映射初始化之前,您的回调似乎触发得太快:您在调用时触发了搜索

newMarker2(UserPostcode, UserIcon);

这是在执行期间,在loadMap函数被“load”事件触发之前完成的。

查看此处发生的情况的最佳方法是在firebug的第31行和第153行上放置断点。这样,您将看到在第31行初始化map之前调用了“map.addOverlay(usermarker);”

在“///映射用户位置”下面有相当多的代码,方法是对不在函数中的PostCode“注释行进行地理编码。没有被某种onload回调执行的代码可以在任何时候由浏览器执行(通常,但不总是,一旦加载了整个javascript标记)。这就是为什么在不同的浏览器中会看到不一致的行为。在最坏的情况下,每次重新加载都可能不一致

要解决此问题,您应该将此代码放在函数中,并像调用loadMap函数一样调用它(“google.setOnLoadCallback(loadMap);”),或者只是从loadMap函数中调用它


希望这能有所帮助。

我在IE7中出错:map有空值或不是对象。Microsoft脚本调试器在map.addOverlay(usermarker)上查找错误;在函数localSearch2.setSearchCompleteCallbackYep中,我看到的就是这一行。有什么建议吗?好的,这是一个简单的代码更改吗?我绝对不是javascript专家!是的,非常简单:在创建和配置映射的代码之后,您应该将调用移到loadMap中的newMarker2。感谢Franz,这对我来说无疑是一个学习过程。我会看看我是否能用这些改变来修复它,谢谢!