var map = new esri.Map(mapPaneId, { logo: false }); // more code ... if (config && config.dynamicLayerServices && config.dynamicLayerServices[0]) { hasDynamicServices = true; var layerCount = config.dynamicLayerServices.length; var layers = new Array(); var layerInfos = new Array(); for (var i = 0; i < layerCount; i++) { var layer = new esri.layers.ArcGISDynamicMapServiceLayer(config.dynamicLayerServices.url); var layerName = config.dynamicLayerServices.name; if (config.dynamicLayerServices.opacity) { layer.setOpacity(config.dynamicLayerServices.opacity); } layers.push(layer); layerInfos.push({ layer: layer, title: config.dynamicLayerServices.name, id: config.dynamicLayerServices.id }); dojo.connect(layer, "onUpdate", hideLoadingIndicator); dojo.connect(layer, "onError", function(err) { console.log("Error retrieving the layer '" + layerName + "': " + err.message); //alert("Error retrieving the layer '" + layerName + "': " + err.message); }); } dojo.connect(map, 'onLayersAddResult', function(results) { // THIS IS NOT FIRING WHEN 2 MAPS HAVE THE SAME LAYER // -- EVEN IF THE LAYER ID IS DIFFERENT if (!config.hideToolbar) { initLayersDialog(layersDialog, map, layerInfos); initLegendDialog(legendDialog, map, layerInfos); initIdentifyTasks(div, map, config.dynamicLayerServices); } connectGridsToMap(div, map); }); map.addLayers(layers);