2017-08-17 73 views
0

我嘗試了將動態365 CRM中的地圖作爲web資源的最簡單示例。bing map TestDataGenerator未定義

<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

我很驚訝地圖甚至加載。您需要將Bing地圖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> 
+0

謝謝,它的工作原理。 這是令人困惑的部分,我的地圖如何加載沒有腳本。由於地圖被加載,我認爲CRM包含地圖腳本,我不需要調用它。 現在很明顯,情況並非如此。 – Milos