[英]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.