簡體   English   中英

多個javascript(不同版本)沖突

[英]Multiple javascript(different version) conflict

使用2個API(OneMap API和ESRI(Arcgis)API)時遇到一些問題。

我的問題是我想使用基於ESRI(Arcgis)API的OneMap API,但是OneMap API中缺少一些我需要完成的功能,例如featureLayer 我需要在ESRI(Arcgis)API中找到的featureLayer ,並且我嘗試包括這兩個API來調用featureLayer ,但是會出現錯誤,並且地圖不會顯示。 我猜想可能會發生沖突,因為我可以單獨使用API​​。

我之所以選擇使用OneMap是因為它專注於新加坡,並且與ESRI的地圖相比,該地圖上的信息更加詳細/更新。

那么在使用上面提到的2個API時,有沒有一種方法可以防止這種沖突? 還是無論如何指定何時在函數需要時使用哪個API?

編輯:這是錯誤消息,

Uncaught TypeError: Cannot read property 'dojo' of undefined 
Uncaught TypeError: Object #<Object> has no method '_loadPath' 

根據錯誤消息,您的一個庫似乎需要Dojo庫。 在包括其他兩個庫之前,您應該嘗試包括它。

一旦將其包含在其他庫之前,您應該會看到這些錯誤消息消失了。

您的代碼本身(將創建地圖)需要包含在Dojo domReady插件中:

  <script>
    require(["esri/map", "dojo/domReady!"], function(Map) { 
      // code to create the map and add a basemap will go here 
    });
  </script>

我對這些庫中的任何一個都一無所知,但是看來這至少可以使您克服這些錯誤(並且可能會遇到一些新的錯誤,但是當它們發生時我們可以進行處理)。

根據ArcGIS網站的示例,Dojo或其中的某些部分似乎已經包含在內。 在包含庫的地方檢查一下,然后准備好在dom上加載地圖(您還需要包括地圖樣式並創建HTML元素來保存地圖(在本例中為ID為“ mapDiv”的div:

 <script src="http://js.arcgis.com/3.7/"></script>
  <script>
    var map;
    require(["esri/map", "dojo/domReady!"], function(Map) {
      map = new Map("mapDiv", {
        center: [-56.049, 38.485],
        zoom: 3,
        basemap: "streets"
      });
    });
  </script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM