bing 地图 TestDataGenerator 未定义
bing map TestDataGenerator is undefined
我在动态 365 CRM 中尝试了最简单的 bing 地图示例作为 Web 资源。
<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 未定义。
我哪里错了?
我很惊讶竟然加载了地图。您需要将 Bing Maps V8 地图脚本加载到与地图相同的框架中,而不是在父级 window 中。否则地图控件将无法访问它需要的所有资源。这是您的代码的修改版本,应该可以工作:
<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>
我在动态 365 CRM 中尝试了最简单的 bing 地图示例作为 Web 资源。
<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 未定义。 我哪里错了?
我很惊讶竟然加载了地图。您需要将 Bing Maps V8 地图脚本加载到与地图相同的框架中,而不是在父级 window 中。否则地图控件将无法访问它需要的所有资源。这是您的代码的修改版本,应该可以工作:
<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>