我正在从版本6.3升级的Bing Maps版本8.0升级。这是我下面升级的代码,它引发了一个错误:
var Points = [new Microsoft.Maps.Location(0, 0), new Microsoft.Maps.Location(0, 0)]
上面的行执行后的几行给我一个错误,说
" typeError:microsoft.maps.location不是构造函数"
上述问题发生在Google Chrome浏览器中。但是在Internet Explorer中也可以。
任何建议都是有帮助的。
预先感谢。
问候,rahul
问题可能是您尝试在加载地图控制脚本之前尝试使用microsoft.maps.maps。V8映射脚本会异步加载以进行性能,但是这意味着,如果您尝试在脚本标签之后立即访问代码中的名称空间以加载地图控件,则命名空间将不会存在。您需要代码等待直到加载地图脚本。您可以通过将回调函数名称添加到MAP脚本标签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>
我们还建议在您的地图加载代码之后添加地图脚本标签。这样做的原因是,如果页面刷新,则将映射脚本被缓存,并立即调用回调函数,因此需要加载回调函数。