0

我正在爲Visual Studio Community 2015中的WP8.1 [WinJS 4.3/HTML]開發javascript/html應用程序,現在我處於實現地圖的一部分。Visual Studio 2015:無法引用Bing地圖庫

不幸的是,我似乎無法引用javascript api(bing ajax)...似乎在我的數據透視圖項目中實現這個功能並沒有正確獲取庫(根本沒有做到更具體)遵循這裏的步驟https://msdn.microsoft.com/en-us/library/gg427624.aspx從服務器下載庫:

<script charset="UTF-8" type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script> 

無法引用它,並使用「微軟」。命名空間以錯誤結尾。

所以我試圖安裝VS的bing地圖擴展,它被安裝,但我不能在VS2015社區中添加擴展的引用。 https://visualstudiogallery.msdn.microsoft.com/224eb93a-ebc4-46ba-9be7-90ee777ad9e1

<script type="text/javascript" src="ms-appx:///Bing.Maps.JavaScript//js/veapicore.js"></script> 

但這仍然沒有任何成功。

因此,我沒有圖書館和任何地圖卡住了。任何機會都會有一個離線版本的bing maps javascript api我可以下載並參考與WinJS相同的方式。

回答

0

這已經在Bing地圖博客上進行了介紹,並且是今年Microsoft/Build/conference上的一個主題。下面是視頻:https://channel9.msdn.com/Blogs/Best-of-Build-2015-Cloud/Visualizing-Business-Data-on-any-Device-with-Bing-Maps

這裏是一個博客帖子:https://blogs.bing.com/maps/2013/06/28/cross-platform-development-with-bing-maps-and-phonegap/

基本上,您需要使用Web網址:

<script charset="UTF-8" type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script> 

但是你當你去加載地圖,你會需要等待Microsoft命名空間變爲可用。或者在document.body.onload事件中加載映射。這裏是你如何可以等待微軟的命名空間加載地圖前:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script> 
    <script type="text/javascript"> 
     var map = null; 

     function getMap() 
     { 
      var mapElement = document.getElementById('myMap'); 

      if (typeof Microsoft == 'undefined' || 
       typeof Microsoft.Maps == 'undefined' || 
       mapElement == null) { 
       setTimeout(getMap, 100); 
       return; 
      } 

      map = new Microsoft.Maps.Map(mapElement, { credentials: 'Your Bing Maps Key' }); 
     } 

     getMap(); 
    </script> 
</head> 
<body> 
    <div id='myMap' style="position:relative; width:400px; height:400px;"></div> 
</body> 
</html> 
+0

不幸的是我仍然看到錯誤:我仍然收到此錯誤。 「APPHOST9601:無法加載。應用程序無法在本地上下文中加載遠程Web內容。」即使我在應用程序清單中的中允許該特定的URL,也是如此。我一定做錯了什麼。 – belzebu

+1

您是否在VS2015或通用Windows應用程序中創建WP8.1 Apache Cordova應用程序?以上與Cordova完美結合。對於通用應用程序安全性可以防止這種情況發生解決此問題的方法是使用此代碼示例中顯示的iframe:https://code.msdn.microsoft.com/windowsapps/Mashup-Sample-10689f5b – rbrundritt

+1

下面是一個與代碼示例相關的文章:https:/ /msdn.microsoft.com/library/windows/apps/hh452745?f=255&MSPPError=-2147217396 – rbrundritt

0

您發佈的例子似乎仍然像它專爲網頁應用,所以它引用外部JS文件。

如果你需要調用一個JS文件,它永遠不會是外部的,所以如果你看到一個具有src =「http:// ...」的例子,就知道它不會工作,或者你將有在本地下載它。

嘗試此鏈接:https://msdn.microsoft.com/en-us/library/hh852186.aspx

它切換到所有本地引用。

該文章有一個完整的例子,這有助於我的版本工作。

現在,如果他們只移植離線地圖選項...