2013-12-18 63 views
0

我在使用2個API,OneMap API和ESRI(Arcgis)API時遇到了一些問題。多個javascript(不同版本)衝突

我的問題在於我想要使用基於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' 
+0

所以你嘗試過在noConflict模式下使用jQuery的?有沒有幫助?你連問的jQuery或瞭解這些其他圖書館?什麼樣的錯誤,準確,精確?讓用戶能夠輕鬆幫助。 – Stuart

+0

對不起,有編輯我的問題,我問的是OneMap API和ESRI(Arcgis)API,現在面臨的錯誤是,當2 API一起使用時,我的地圖不會運行 – user2760814

+0

他們不工作確實是一個錯誤,但是什麼KIND錯誤?要非常明確地打開控制檯並複製粘貼錯誤,不可能猜出錯誤可能。 – Stuart

回答

1

基於錯誤信息,您的圖書館之一似乎需要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>