我正在从版本6.3升级Bing Maps Version 8.0。这是我下面的升级代码,它引发了一个错误:
var Points = [new Microsoft.Maps.Location(0, 0), new Microsoft.Maps.Location(0, 0)]
执行上面的行给出了一个错误说
" TypeError:Microsoft.Maps.Location不是构造函数"
上述问题发生在Google Chrome浏览器中。但是在Internet Explorer中也能正常工作。
任何建议都有帮助。
提前致谢。
此致 拉胡
答案 0 :(得分:4)
问题可能是您在加载地图控制脚本之前尝试使用Microsoft.Maps命名空间。 V8映射脚本异步加载以提高性能,但这意味着如果您尝试在脚本标记之后立即访问代码中的命名空间以加载地图控件,则命名空间不会存在。您需要等待代码才能加载地图脚本。您可以通过向地图脚本标记URL添加回调函数名称来处理此问题。例如:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script type='text/javascript'>
var map;
function GetMap()
{
map = new Microsoft.Maps.Map('#myMap', {
credentials: 'YourBingMapsKey'
});
//Add your post map load code here.
}
</script>
<script type='text/javascript' src='https://www.bing.com/api/maps/mapcontrol?callback=GetMap' async defer></script>
</head>
<body>
<div id="myMap" style=";width:800px;height:600px;"></div>
</body>
</html>
我们还建议您在地图加载代码后添加地图脚本标记。原因是如果页面被刷新,地图脚本将被缓存并立即调用回调函数,因此需要已经加载回调函数。