<?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: Turn on/off layers in mapView programmatically in ArcGIS Runtime SDK for iOS Questions</title>
    <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/turn-on-off-layers-in-mapview-programmatically/m-p/344583#M2967</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I modify TOC from legend sample.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I keep ref of agslayerview for manage visible while agsmapview:didloadlayerforlayerview (AGSMapViewLayerDelegate). The addTOCForLayerView is just add layerView to NSMutableArray.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- (void) mapView:(AGSMapView*) mapView didLoadLayerForLayerView:(UIView&amp;lt;AGSLayerView&amp;gt;*) layerView {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [self.legendDataSource addTOCForLayerView:layerView];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I set visible of layer like this. Or just set layer.hidden = YES or NO.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (indexPath.section == 0) {&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;STRONG&gt;UIView&amp;lt;AGSLayerView&amp;gt;* layer&lt;/STRONG&gt;&lt;SPAN&gt; = [self.legendDataSource.tocView objectAtIndex:indexPath.row];&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;STRONG&gt;layer.hidden = !layer.hidden;&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (layer.hidden) {&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; cell.accessoryType = UITableViewCellAccessoryNone;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&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; cell.accessoryType = UITableViewCellAccessoryCheckmark;&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; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 30 Nov 2011 06:50:17 GMT</pubDate>
    <dc:creator>TOSPOLTOOMMALA</dc:creator>
    <dc:date>2011-11-30T06:50:17Z</dc:date>
    <item>
      <title>Turn on/off layers in mapView programmatically</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/turn-on-off-layers-in-mapview-programmatically/m-p/344582#M2966</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;What I'm trying to do: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Turn layers on and off in a mapView programmatically. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Currently, I do the following &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Upon application start, I add a couple of layers to the mapView - An AGSDynamicMapServiceLayer Layer and an AGSFeatureLayer &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [self.mapView addMapLayer:baseLayer withName:@"baseLayer"];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [self.mapView addMapLayer:self.activeFeatureLayer withName:@"featureLayer"];&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I then want to programmatically change the layers that are turned on in my mapView. So, I prepare an array of Layer Names that I want turned on.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I then create a new reference to a new AGSDynamicMapServiceLayer.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AGSDynamicMapServiceLayer *baseLayer = [[[AGSDynamicMapServiceLayer alloc] initWithMapServiceInfo:bms]autorelease];&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I set my baselayer visible layers to be the layers in the array&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;baseLayer.visibleLayers = layerIDsForMap;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I then reset the mapview (to empty the existing layers)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [self.mapView reset];&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and then reload them in &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [self.mapView addMapLayer:baseLayer withName:@"baseLayer"];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [self.mapView addMapLayer:self.activeFeatureLayer withName:@"featureLayer"];&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This, however, is causing some odd behavior elsewhere in the app, for example, when I then go to use the add feature functionality. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So, I'm wondering if there's a less obtrusive way to programmatically set visible layers rather than removing the map service layers from the mapView and adding them back in.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Nov 2011 17:59:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/turn-on-off-layers-in-mapview-programmatically/m-p/344582#M2966</guid>
      <dc:creator>DarrenMackiewicz</dc:creator>
      <dc:date>2011-11-29T17:59:26Z</dc:date>
    </item>
    <item>
      <title>Re: Turn on/off layers in mapView programmatically</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/turn-on-off-layers-in-mapview-programmatically/m-p/344583#M2967</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I modify TOC from legend sample.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I keep ref of agslayerview for manage visible while agsmapview:didloadlayerforlayerview (AGSMapViewLayerDelegate). The addTOCForLayerView is just add layerView to NSMutableArray.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- (void) mapView:(AGSMapView*) mapView didLoadLayerForLayerView:(UIView&amp;lt;AGSLayerView&amp;gt;*) layerView {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [self.legendDataSource addTOCForLayerView:layerView];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I set visible of layer like this. Or just set layer.hidden = YES or NO.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (indexPath.section == 0) {&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;STRONG&gt;UIView&amp;lt;AGSLayerView&amp;gt;* layer&lt;/STRONG&gt;&lt;SPAN&gt; = [self.legendDataSource.tocView objectAtIndex:indexPath.row];&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;STRONG&gt;layer.hidden = !layer.hidden;&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (layer.hidden) {&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; cell.accessoryType = UITableViewCellAccessoryNone;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&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; cell.accessoryType = UITableViewCellAccessoryCheckmark;&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; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Nov 2011 06:50:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/turn-on-off-layers-in-mapview-programmatically/m-p/344583#M2967</guid>
      <dc:creator>TOSPOLTOOMMALA</dc:creator>
      <dc:date>2011-11-30T06:50:17Z</dc:date>
    </item>
    <item>
      <title>Re: Turn on/off layers in mapView programmatically</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/turn-on-off-layers-in-mapview-programmatically/m-p/344584#M2968</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for the reply.&amp;nbsp; I don't think that I explained well enough. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a layer that i add to the mapView that is the basemap &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In that basemap, there are layers (like the layers in a Map Document) &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So the "BaseMap" AGSDynamicMapServiceLayer has a bunch of layers in it. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Let's just say &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pavement&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Buildings&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Sidewalks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Parcels&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then I add an AGSFeatureLayer that has an editable layer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There is one layer in the AGSFeatureLayer &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Let's say &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Collection Points&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's what I'm trying to do:&amp;nbsp; If pavement and buildings are turned on by default in the map service, and i want to update my map to turn on the parcels and sidewalks, and turn off the pavement and building....that's what I'm trying to do. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not trying to hide the AGSDynamicMapServiceLayer, but rather the individual Layers within that map service. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I hope that helps explain better.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Nov 2011 12:18:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/turn-on-off-layers-in-mapview-programmatically/m-p/344584#M2968</guid>
      <dc:creator>DarrenMackiewicz</dc:creator>
      <dc:date>2011-11-30T12:18:37Z</dc:date>
    </item>
    <item>
      <title>Re: Turn on/off layers in mapView programmatically</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/turn-on-off-layers-in-mapview-programmatically/m-p/344585#M2969</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Tospol,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I think I'm following you. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you show me how you add the layerView to NSMutableArray?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Dec 2011 19:06:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/turn-on-off-layers-in-mapview-programmatically/m-p/344585#M2969</guid>
      <dc:creator>DarrenMackiewicz</dc:creator>
      <dc:date>2011-12-01T19:06:17Z</dc:date>
    </item>
  </channel>
</rss>

