2013-12-18 4 views
0

У меня есть проблема с использованием двух API вместе, API OneMap и API ESRI (ArcGIS).Несколько конфликтов javascript (другая версия)

Моя проблема заключается в том, что я хочу использовать API OneMap, основанный на API ESRI (ArcGIS), но в API OneMap есть несколько недостающих функциональных возможностей, необходимых для выполнения моей задачи, например, featureLayer. Этот featureLayer, который находится в API ESRI (Arcgis), является тем, что мне нужно, и я попытался включить оба API, чтобы вызвать featureLayer, но будут ошибки, и карта не будет отображаться. Я думаю, это может быть конфликт, поскольку я мог бы использовать API отдельно.

Причина, по которой я решил использовать OneMap, заключается в том, что она сосредоточена на Сингапуре и более подробной/обновленной информации на карте по сравнению с картой ESRI.

Итак, есть ли способ предотвратить этот конфликт при использовании 2 API, упомянутых выше? или все равно указать, когда использовать какой API при необходимости функцией?

EDIT: Вот сообщение об ошибке,

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

Так что вы пытались использовать JQuery в режиме noConflict? Помогло ли это? вы даже не спросив о JQuery или об этих других библиотеках? Какие ошибок, точно и? Сделать это легко помочь. – Stuart

+0

к сожалению, есть отредактировал мой вопрос. Я спрашиваю об API API OneMap и API ESRI (ArcGIS). Теперь проблема с импровизацией заключается в том, что когда 2 API используются вместе, моя карта не будет работать. – user2760814

+0

Они не работают, это действительно ошибка, но что КИНД ошибки? Будьте очень конкретны ... откройте консоль и скопируйте в нее ошибки. Невозможно догадаться, какие ошибки возможно. – Stuart

ответ

1

На основании сообщений об ошибках, одна из библиотек, как представляется, требует библиотеки 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 ready (вам также необходимо будет включить стили карты и создать элемент HTML для хранения карты (в этом случае div с идентификатором «mapDiv»:

<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>