2013-12-18 65 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>