2013-09-30 7 views
0

Если это не одна проблема, ее другая. Я смотрю на это весь день и не знаю, что здесь происходит. У меня снова есть карта с двумя слоями уездного слоя и слоем msa. У меня есть две ссылки на первой странице, где говорится, что уезд другой, который говорит msa. По щелчку любой ссылки я хочу отключить один слой карты и отобразить на правильном слое. Вот событие click:Включение и выключение слоев карты

$('.map-type-link').live('click', function() { 
    params.display_region_type = parseInt($(this).attr('region_type')); 

    if (params.display_region_type == 1) { 

     app.currentFl = app.featureLayers[0]; 

    } 
    else { 

     app.currentFl = app.MSAfl;    
     app.flVis.setVisibility(false); 
     app.MSAfl.setVisibility(true); 
     app.currentFl.redraw();       

    }     

});

Право не просто нажимать на графство app.flvis по-прежнему видно.

Здесь, где создаются художественные слои: (. Я делаю предположения о том, что означает, что все ваши переменные)

dojo.forEach(app.layersUrls, function (info, idx) { 
    app.featureLayers[idx] = new esri.layers.FeatureLayer(
     app.layersUrls[idx], { 
      mode: esri.layers.FeatureLayer.MODE_ONDEMAND, 
      outFields: app.outFields[idx], 
      opacity: 0.80 
      } 
     );  

    app.featureLayers[idx].setRenderer(br); 

    //create min and max scales when layers load 
    dojo.connect(app.featureLayers[idx], 'onLoad', function() { 
     app.featureLayers[idx].minScale = app.layerScales[idx].min; 
     app.featureLayers[idx].maxScale = app.layerScales[idx].max; 
    });//ends connections 

    //add THIS feature layer to the map 
    app.map.addLayer(app.featureLayers[idx]); 

ответ

0

Чтобы включить слой MSA, у вас есть четыре строки кода (в заявлении еще):

app.currentFl = app.MSAfl;    
app.flVis.setVisibility(false); 
app.MSAfl.setVisibility(true); 
app.currentFl.redraw(); 

в, если заявление, у вас есть только одна строка кода, строку, которая не будет превращать любые слои или выключить:

app.currentFl = app.featureLayers[0]; 

Вместо этого, я думаю, вы должны следовать примеру того, что вы делали в другом заявлении:

app.currentFl = app.flVis;    
app.MSAfl.setVisibility(false); 
app.flVis.setVisibility(true); 
app.currentFl.redraw(); 

Это предполагает, что app.flVis вашего района слой, который может или не может быть дело.

+0

был более крупной проблемой в отношении того, почему это не просто скрывало предполагаемый уровень –