2017-04-23 103 views
1

這裏是我的代碼我複選框不顯示功能層

else if(which == "abc"){ 
     var d = (id).toString(); 
     d = d.replace("abc", ""); 
     query.where = "Name='" + d + "'"; 
     console.info(query.where); 
     query.returnGeometry = true; 
     layerC.selectFeatures(query, FeatureLayer.SELECTION_NEW, function (features) { 
      thePoly = features[0].geometry; 
      theExtent = thePoly.getExtent().expand(1); //Zoom out slightly from the polygon's extent 
      map.setExtent(theExtent); 
     }); 

    } 
    var text; 
    var R = document.getElementById('abc').value; 
    var rLyrToggle = dom.byId("rLyr"); 

    switch(Cpt) { 
case "room1": 
    on(rLyrToggle, "change", function() { 
     building layer.visible = rLyrToggle.checked; 

    }); 
    break; 

default: 
    text = "No room"; 
} 

我的複選框,在檢查圖層添加到地圖上沒有顯示層,但我禁用其公開程度, 我想,當COMBOX選擇的值等於所述殼體1,則特徵是看得到當用戶選中複選框

+0

你可以創建一個的jsfiddle,我們可以重現相同的問題..這將是一個更好的方式...但是,在某些地方它的腥在開關情況下..建設layer.visible = rLyrToggle.checked;在這一行...如果你想要一個確切的修復,然後添加一些更多的細節或類似的運行環境.. –

+0

腥嗎?我添加了圖層到地圖,但將其可見性設置爲false。當combox值匹配具有該文件的案例編號時,所以當用戶單擊複選框時,所述圖層可見 –

+0

或者是否存在用戶從下拉列表中選擇圖層的任何示例按鈕。它是級聯嵌套過濾 –

回答

2

那麼,找到所有的值(如在評論提到的)從GIS層我建議使用queryTask代替esriRequest -

下面是工作代碼 -

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
 
    
 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"> 
 
    <title>Query State Info without Map</title> 
 

 
    <script src="https://js.arcgis.com/3.20/"></script> 
 
    <script> 
 
     require([ 
 
     "dojo/dom", "dojo/on", 
 
     "esri/tasks/query", "esri/tasks/QueryTask", "dojo/domReady!" 
 
     ], function (dom, on, Query, QueryTask) { 
 

 
     var queryTask = new QueryTask("https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5"); 
 

 
     var query = new Query(); 
 
     query.returnGeometry = false; 
 
     query.outFields = [ 
 
      "SQMI", "STATE_NAME", "STATE_FIPS", "SUB_REGION", "STATE_ABBR", 
 
      "POP2000", "POP2007", "POP00_SQMI", "POP07_SQMI", "HOUSEHOLDS", 
 
      "MALES", "FEMALES", "WHITE", "BLACK", "AMERI_ES", "ASIAN", "OTHER", 
 
      "HISPANIC", "AGE_UNDER5", "AGE_5_17", "AGE_18_21", "AGE_22_29", 
 
      "AGE_30_39", "AGE_40_49", "AGE_50_64", "AGE_65_UP" 
 
     ]; 
 

 
     on(dom.byId("execute"), "click", execute); 
 
     on(dom.byId("findAll"), "click", findAll); 
 

 
     function execute() { 
 
      query.where = ""; 
 
      query.text = dom.byId("stateName").value; 
 
      queryTask.execute(query, showResults); 
 
     } 
 
     
 
     function findAll() { 
 
      query.where = "1=1"; 
 
      queryTask.execute(query, showResults); 
 
     } 
 

 
     function showResults (results) { 
 
      var resultItems = []; 
 
      var resultCount = results.features.length; 
 
      for (var i = 0; i < resultCount; i++) { 
 
      var featureAttributes = results.features[i].attributes; 
 
      for (var attr in featureAttributes) { 
 
       resultItems.push("<b>" + attr + ":</b> " + featureAttributes[attr] + "<br>"); 
 
      } 
 
      resultItems.push("<br>"); 
 
      } 
 
      dom.byId("info").innerHTML = resultItems.join(""); 
 
     } 
 
     }); 
 
    </script> 
 
    </head> 
 

 
    <body> 
 
    US state name : 
 
    <input type="text" id="stateName" value="California"> 
 
    <input id="execute" type="button" value="Get Details"> 
 
    OR 
 
    <input id="findAll" type="button" value="Find All"> 
 
    <br /> 
 
    <br /> 
 
    <div id="info" style="padding:5px; margin:5px; background-color:#eee;"> 
 
    </div> 
 
    </body> 
 
</html>

希望這將幫助你:)

+1

謝謝:)它幫助了很多。 –

+0

很高興爲您效勞...... –

+0

如果我想從屬性表中返回文本值並在comobo框中填充這些值。那麼它是如何完成的> –