Bing Maps v8.0 Microsoft.Maps.Location不是chrome中的构造函数

Shy*_*yam 5 google-chrome bing bing-maps bing-api

我正在从版本6.3升级Bing Maps Version 8.0.这是我下面的升级代码,它抛出一个错误:

var Points = [new Microsoft.Maps.Location(0, 0), new Microsoft.Maps.Location(0, 0)]
Run Code Online (Sandbox Code Playgroud)

执行后的上述行给出了一个错误说法

"TypeError:Microsoft.Maps.Location不是构造函数"

上述问题发生在Google Chrome浏览器中.但是在Internet Explorer中也能正常工作.

任何建议都有帮助.

提前致谢.

此致,拉胡尔

rbr*_*itt 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>
Run Code Online (Sandbox Code Playgroud)

我们还建议在地图加载代码之后添加地图脚本标记。原因是,如果刷新页面,地图脚本会被缓存并立即调用回调函数,所以回调函数需要已经加载。