2017-04-23 3 views
1

Voici mon codeMa case à cocher ne montre pas la couche d'entités

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"; 
} 

Ma case à cocher ne montre pas la couche après couche de vérification est ajoutée à la carte, mais je désactiver son visibilty, Je veux que lorsque combox valeur sélectionnée est égale au cas 1, alors la fonction est visibile lorsque l'utilisateur cochez la case

+0

Pouvez-vous créer un jsFiddle où l'on peut reproduire même problème .. ce sera un meilleur moyen ... cependant quelque part son poisson dans le cas de commutation .. construction layer.visible = rLyrToggle.checked; sur cette ligne ... si vous voulez une solution exacte, puis ajouter quelques détails ou environnement d'exploitation similaire .. –

+0

Fishy? j'ai ajouté la couche à la carte mais définit sa visibilty tot false. quand la valeur de combox correspond au numéro de cas elle a ce fichier ainsi quand l'utilisateur clique la case cette couche est visibile –

+0

ou est-il un exemple que l'utilisateur choisissent le calque de dropdown bouton. il est en cascade de filtrage imbriqué –

Répondre

2

Eh bien, pour trouver toute valeur (Tel que mentionné dans les commentaires) d'une couche SIG je suggère l'utilisation queryTask au lieu de esriRequest -

est en dessous du code- travail

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

En espérant que cela vous aidera :)

+1

merci :) cela aide beaucoup. –

+0

heureux de vous aider sont les bienvenus ... –

+0

si je veux retourner la valeur du texte de la table d'attribut et de remplir ces valeurs dans la boîte de comobo. alors comment cela doit être fait> –