Initial Esri map layer not loading till zoom

2642
4
09-26-2012 11:39 AM
Charlesshultz
New Contributor III
I have a application that loads 6 layers the first being

    //ADD Layers to MAP
    var basemap =
    new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer");

My issue is that the basemap layer does not show until I zoom in or out? I have tried to change the order of the layers but when I do it does not load any of my layers?

Any Ideas? Below is the complete code for the loading...
Thanks,
Charles...


//ADD Layers to MAP
    var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer");


    //ServiceAreas
    var featureLayerServiceAreas = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/7", {
        mode: esri.layers.FeatureLayer.MODE_SNAPSHOT
    });

    //Yards
    var featureLayerYard = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/0", {
        mode: esri.layers.FeatureLayer.MODE_SNAPSHOT,
        id:"featureLayerYard"
    });

    //SWD
    var featureLayerSWD = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/1", {
        mode: esri.layers.FeatureLayer.MODE_SNAPSHOT
    });

    //LeaseRoads
    var featureLayerLeaseRoads = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/5", {
        mode: esri.layers.FeatureLayer.MODE_ONDEMAND
    });

    //Horizontal_Rigs
    var featureLayerHorizontal = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/2", {
        mode: esri.layers.FeatureLayer.MODE_ONDEMAND
    });

    //Vertical_Rigs
    var featureLayerVertical = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/3", {
        mode: esri.layers.FeatureLayer.MODE_ONDEMAND
    });

    //Rigs
    var featureLayerRIGS = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/4", {
        mode: esri.layers.FeatureLayer.MODE_ONDEMAND, outFields: ["SES_ORIENTATION", "SES_IMG", "SES_NAME", "API", "RigNumber", "SpudDate", "OBJECTID", "OperatorAddress",
                                                                  "OperatorZipCode", "OperatorContact", "OperatorPhoneNumber", "WellNumber", "WellClass", "SurfaceLat", "SurfaceLong"],
        infoTemplate: infoTemplate
    });


    //Legend LayerCode
    //var layerInfo = buildLayersList(layers);
    dojo.connect(map, 'onLayersAddResult', function (results) {
        var layerInfo = dojo.map(results, function (layer, index) {
            return { layer: layer.layer, title: layer.layer.name };
        });
        //alert(layerInfo.length);
        if (layerInfo.length > 0) {
            var legendDijit = new esri.dijit.Legend({
                map: map,
                layerInfos: layerInfo
            }, "legendDiv");
            legendDijit.startup();
        }
        else {
            dojo.byId('legendDiv').innerHTML = "";
        }
    });

    map.addLayers([basemap, featureLayerServiceAreas, featureLayerSWD, featureLayerYard, featureLayerLeaseRoads, featureLayerVertical, featureLayerHorizontal, featureLayerRIGS]);
    map.infoWindow.resize(300, 150);
0 Kudos
4 Replies
StephenLead
Regular Contributor III
Try loading the basemap layer first, then load the other layers once the basemap has been successfully added. You can use map.onLoad to listen for this.

See this sample for some working code:


dojo.connect(map,'onLoad', initOperationalLayer);

function initOperationalLayer(map){
    var featureLayer =new esri.layers.FeatureLayer(....
      .......
      map.addLayer(featureLayer);
0 Kudos
Charlesshultz
New Contributor III
Same thing happens...
Whats odd is that if I put it twice like this:
    map.addLayer(new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"));
    map.addLayer(new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"));

It works fine... But then the change of the map gallery will not work...

function init() {......
.......
    var startExtent = new esri.geometry.Extent(-124.231, 23.9, -60.56, 52.19, new esri.SpatialReference({ wkid: 4326 }));
    map = new esri.Map("map", { extent: esri.geometry.geographicToWebMercator(startExtent)});

    map.addLayer(new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"));

    dojo.connect(map, "onLoad", initUI());
    
    dojo.connect(map, "onUpdateStart", showLoading);
    dojo.connect(map, "onUpdateEnd", hideLoading);
   
}
        
function initUI() {
    
    loading = dojo.byId("loadingImg");  //loading image. id

    var content = "<button class='ButtonClass' dojoType='dijit.form.Button'  id='RouteButton' onclick='pushInfo(${OBJECTID})'>Get Detailed Infomation</button>" +
    "<div class='datagridInfo' ><table>" +
        "<tbody>" +
            "<tr id='SES_NAMEInfo'><td>Name</td>                   <td>${SES_NAME}</td></tr>" +
            "<tr><td>API</td>                                      <td>${API}</td></tr>" +
            "<tr id='RIGInfo'><td>RigNumber</td>                   <td>${RigNumber}</td></tr>" +
   "</tbody>" +
   "</table></div>"


    var infoTemplate = new esri.InfoTemplate("RIGS", content);
   

    //ADD Layers to MAP
    //var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer");

    //ServiceAreas
    var featureLayerServiceAreas = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/7", {
        mode: esri.layers.FeatureLayer.MODE_SNAPSHOT
    });
    //Yards
    var featureLayerYard = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/0", {
        mode: esri.layers.FeatureLayer.MODE_SNAPSHOT,
        id:"featureLayerYard"
    });
    //SWD
    var featureLayerSWD = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/1", {
        mode: esri.layers.FeatureLayer.MODE_SNAPSHOT
    });
    //LeaseRoads
    var featureLayerLeaseRoads = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/5", {
        mode: esri.layers.FeatureLayer.MODE_ONDEMAND
    });
    //Horizontal_Rigs
    var featureLayerHorizontal = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/2", {
        mode: esri.layers.FeatureLayer.MODE_ONDEMAND
    });
    //Vertical_Rigs
    var featureLayerVertical = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/3", {
        mode: esri.layers.FeatureLayer.MODE_ONDEMAND
    });
    //Rigs
    var featureLayerRIGS = new esri.layers.FeatureLayer("http://services.arcgis.com/s94UJcOoEa23NHUs/arcgis/rest/services/Sales_Support_Map/FeatureServer/4", {
        mode: esri.layers.FeatureLayer.MODE_ONDEMAND, outFields: ["SES_ORIENTATION", "SES_IMG", "SES_NAME", "API", "RigNumber", "SpudDate", "OBJECTID", "OperatorAddress",
                                                                  "OperatorZipCode", "OperatorContact", "OperatorPhoneNumber", "WellNumber", "WellClass", "SurfaceLat", "SurfaceLong"],
        infoTemplate: infoTemplate
    });

    //Legend LayerCode
    //var layerInfo = buildLayersList(layers);
    dojo.connect(map, 'onLayersAddResult', function (results) {
        var layerInfo = dojo.map(results, function (layer, index) {
            return { layer: layer.layer, title: layer.layer.name };
        });
        //alert(layerInfo.length);
        if (layerInfo.length > 0) {
            var legendDijit = new esri.dijit.Legend({
                map: map,
                layerInfos: layerInfo
            }, "legendDiv");
            legendDijit.startup();
        }
        else {
            dojo.byId('legendDiv').innerHTML = "";
        }
    });

    map.addLayers([featureLayerServiceAreas, featureLayerSWD, featureLayerYard, featureLayerLeaseRoads, featureLayerVertical, featureLayerHorizontal, featureLayerRIGS]);
    map.infoWindow.resize(300, 150);

.......
0 Kudos
StephenLead
Regular Contributor III
Sorry, I'm not sure what's going on. Is it possible to post your entire script, or point us to a live site?

I'd suggest stepping through your code live in FireBug to see what's going on.
0 Kudos
PeterEge
New Contributor

Did you ever resolve this issue?

0 Kudos