bing map TestDataGenerator未定义

时间:2017-08-17 08:18:17

标签: javascript bing-maps

我尝试了最简单的示例,将动态365 CRM中的地图作为网络资源。

<body>
    <div class="container">    
        <div class="map" id='mapId'></div>
        <div id='printoutPanel'></div>
    </div>

    <script type='text/javascript'>
        document.onreadystatechange = function () {
            if (document.readyState == "complete") {
                loadMapScenario();
            }
        }

        function loadMapScenario() {
            var map = new window.parent.Microsoft.Maps.Map(document.getElementById('mapId'), {
                credentials: 'Your Bing Maps Key'
            });
            map.entities.push(window.parent.Microsoft.Maps.TestDataGenerator.getPushpins(3, map.getBounds()));
        }
    </script>
</body>

我目前没有BingMapKey。

由于TestDataGenerator未定义,因此地图显示在屏幕上但没有推针。 哪里我错了?

1 个答案:

答案 0 :(得分:1)

我对地图甚至装满感到惊讶。您需要将Bing Maps V8地图脚本加载到与地图相同的框架中,而不是在父窗口中。否则,地图控件无法访问所需的所有资源。以下是您的代码的修改版本:

<body>
    <div class="container">    
        <div class="map" id='mapId'></div>
        <div id='printoutPanel'></div>
    </div>

    <script type='text/javascript'>
    function loadMapScenario() {
        var map = new Microsoft.Maps.Map(document.getElementById('mapId'), {
            credentials: 'Your Bing Maps Key'
        });
        map.entities.push(Microsoft.Maps.TestDataGenerator.getPushpins(3, map.getBounds()));
    }
    </script>
    <script type='text/javascript' src='https://www.bing.com/api/maps/mapcontrol?callback=loadMapScenario' async defer></script>
</body>