<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Excluding children from a layerlist in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/excluding-children-from-a-layerlist/m-p/732437#M67875</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I've used the &lt;A href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jssamples_start.htm#jssamples/map_dynamiclayerlist.html"&gt;ESRI sample&lt;/A&gt; for dynamically building checkbox toggles for layer visibility. However, as the layers in my map service occur several times albeit in different scales, the list layers function shows both the name of the parent group layer as well as the names of the children. Like so:&lt;BR /&gt;&lt;BR /&gt;-Checkbox- Roads&lt;BR /&gt;-Checkbox- Roads 500&lt;BR /&gt;-Checkbox- Roads 1000&lt;BR /&gt;-Checkbox- Roads 1500&lt;BR /&gt;&lt;BR /&gt;Thusly, I need a way to exclude the children from the list (Roads 500, 1000, 1500) while still having the Roads group checkbox hiding or showing all of its children. Is there some variable that I can check in the buildlayerlist function that filters out the layers I want to exclude? How would the code look?&lt;BR /&gt;&lt;BR /&gt;Any help is very appreciated!&lt;BR /&gt;&lt;BR /&gt;Thank you&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;you can identify a sublayer by using layer property: parentLayerId.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;here is the code sample show how:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;var infos = myMapLayer.layerInfos; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//set the selected layer visible&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for (var i = 0; i &amp;lt; infos.length; i++) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (infos&lt;I&gt;.parentLayerId !=-1){ // a sublayer&lt;/I&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (infos&lt;I&gt;.name ==your sublayer name)&lt;/I&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;viewService.setVisibleLayers(&lt;I&gt;);&lt;/I&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Apr 2011 13:03:13 GMT</pubDate>
    <dc:creator>HemingZhu</dc:creator>
    <dc:date>2011-04-18T13:03:13Z</dc:date>
    <item>
      <title>Excluding children from a layerlist</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/excluding-children-from-a-layerlist/m-p/732436#M67874</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've used the &lt;/SPAN&gt;&lt;A href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jssamples_start.htm#jssamples/map_dynamiclayerlist.html"&gt;ESRI sample&lt;/A&gt;&lt;SPAN&gt; for dynamically building checkbox toggles for layer visibility. However, as the layers in my map service occur several times albeit in different scales, the list layers function shows both the name of the parent group layer as well as the names of the children. Like so:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Checkbox- Roads&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-Checkbox- Roads 500&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-Checkbox- Roads 1000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-Checkbox- Roads 1500&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thusly, I need a way to exclude the children from the list (Roads 500, 1000, 1500) while still having the Roads group checkbox hiding or showing all of its children. Is there some variable that I can check in the buildlayerlist function that filters out the layers I want to exclude? How would the code look?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help is very appreciated!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Apr 2011 05:48:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/excluding-children-from-a-layerlist/m-p/732436#M67874</guid>
      <dc:creator>AW1</dc:creator>
      <dc:date>2011-04-18T05:48:25Z</dc:date>
    </item>
    <item>
      <title>Re: Excluding children from a layerlist</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/excluding-children-from-a-layerlist/m-p/732437#M67875</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I've used the &lt;A href="http://help.arcgis.com/en/webapi/javascript/arcgis/help/jssamples_start.htm#jssamples/map_dynamiclayerlist.html"&gt;ESRI sample&lt;/A&gt; for dynamically building checkbox toggles for layer visibility. However, as the layers in my map service occur several times albeit in different scales, the list layers function shows both the name of the parent group layer as well as the names of the children. Like so:&lt;BR /&gt;&lt;BR /&gt;-Checkbox- Roads&lt;BR /&gt;-Checkbox- Roads 500&lt;BR /&gt;-Checkbox- Roads 1000&lt;BR /&gt;-Checkbox- Roads 1500&lt;BR /&gt;&lt;BR /&gt;Thusly, I need a way to exclude the children from the list (Roads 500, 1000, 1500) while still having the Roads group checkbox hiding or showing all of its children. Is there some variable that I can check in the buildlayerlist function that filters out the layers I want to exclude? How would the code look?&lt;BR /&gt;&lt;BR /&gt;Any help is very appreciated!&lt;BR /&gt;&lt;BR /&gt;Thank you&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;you can identify a sublayer by using layer property: parentLayerId.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;here is the code sample show how:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;var infos = myMapLayer.layerInfos; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;//set the selected layer visible&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;for (var i = 0; i &amp;lt; infos.length; i++) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (infos&lt;I&gt;.parentLayerId !=-1){ // a sublayer&lt;/I&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (infos&lt;I&gt;.name ==your sublayer name)&lt;/I&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;viewService.setVisibleLayers(&lt;I&gt;);&lt;/I&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Apr 2011 13:03:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/excluding-children-from-a-layerlist/m-p/732437#M67875</guid>
      <dc:creator>HemingZhu</dc:creator>
      <dc:date>2011-04-18T13:03:13Z</dc:date>
    </item>
    <item>
      <title>Re: Excluding children from a layerlist</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/excluding-children-from-a-layerlist/m-p/732438#M67876</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you for the help!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, I'm still having problems integrating it into the appropriate function.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried doing this, but it doesn't seem to have any effect:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function buildLayerList(layer) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var items = dojo.map(layer.layerInfos,function(info,index){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (layer.parentLayerId == -1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; visible.push(info.id);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "&amp;lt;input type='checkbox' class='list_item' checked='" + (info.defaultVisibility ? "checked" : "") + "' id='" + info.id + "' onclick='updateLayerVisibility();' /&amp;gt;&amp;lt;label for='" + info.id + "'&amp;gt;" + info.name + "&amp;lt;/label&amp;gt;";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dojo.byId("layer_list").innerHTML = items.join();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer.setVisibleLayers(visible);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.addLayer(layer);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The idea was to insert a condition where it only creates checkboxes for the group parents, but I'm obviously missing something.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again for help!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EDIT:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To clarify: I want to toggle the visibility of a group of layers with the help of a checkbox that refers to the parent in the group. I want to prevent the script from generating checkboxes for the children, but I still want to show the children in the map when their parent is checked.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 07:15:38 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/excluding-children-from-a-layerlist/m-p/732438#M67876</guid>
      <dc:creator>AW1</dc:creator>
      <dc:date>2021-12-12T07:15:38Z</dc:date>
    </item>
    <item>
      <title>Re: Excluding children from a layerlist</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/excluding-children-from-a-layerlist/m-p/732439#M67877</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Thank you for the help!&lt;BR /&gt;&lt;BR /&gt;However, I'm still having problems integrating it into the appropriate function.&lt;BR /&gt;I tried doing this, but it doesn't seem to have any effect:&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function buildLayerList(layer) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var items = dojo.map(layer.layerInfos,function(info,index){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (layer.parentLayerId == -1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; visible.push(info.id);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "&amp;lt;input type='checkbox' class='list_item' checked='" + (info.defaultVisibility ? "checked" : "") + "' id='" + info.id + "' onclick='updateLayerVisibility();' /&amp;gt;&amp;lt;label for='" + info.id + "'&amp;gt;" + info.name + "&amp;lt;/label&amp;gt;";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dojo.byId("layer_list").innerHTML = items.join();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer.setVisibleLayers(visible);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.addLayer(layer);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;The idea was to insert a condition where it only creates checkboxes for the group parents, but I'm obviously missing something.&lt;BR /&gt;&lt;BR /&gt;Thanks again for help!&lt;BR /&gt;&lt;BR /&gt;EDIT:&lt;BR /&gt;&lt;BR /&gt;To clarify: I want to toggle the visibility of a group of layers with the help of a checkbox that refers to the parent in the group. I want to prevent the script from generating checkboxes for the children, but I still want to show the children in the map when their parent is checked.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You can't fetch layerInfos until after layer properties for the layer are successfully populated. You can fire layer's onLoad event to get and set the layer's visibility.. try this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; function buildLayerList(layer) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dojo.connect(layer, "onLoad", function(){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var items = dojo.map(layer.layerInfos,function(info,index){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (layer.parentLayerId == -1) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; visible.push(info.id);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "&amp;lt;input type='checkbox' class='list_item' checked='" +&amp;nbsp; (info.defaultVisibility ? "checked" : "") + "' id='" + info.id + "' onclick='updateLayerVisibility();' /&amp;gt;&amp;lt;label for='" + info.id + "'&amp;gt;" + info.name + "&amp;lt;/label&amp;gt;";&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 07:15:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/excluding-children-from-a-layerlist/m-p/732439#M67877</guid>
      <dc:creator>HemingZhu</dc:creator>
      <dc:date>2021-12-12T07:15:41Z</dc:date>
    </item>
  </channel>
</rss>

