[self.mapView zoomToEnvelope:self.mapView.envelope animated:true];
if (self.dynamicLayer.visibleLayers == nil){ NSLog(@VisibleLayer is nil, initializing it.); NSMutableArray *visLayers = [[NSMutableArray alloc]init]; for (AGSMapServiceLayerInfo* layer in self.dynamicLayer.mapServiceInfo.layerInfos){ if (layer.parentLayerID != -1){ if (layer.defaultVisibility ){ [visLayers addObject:[NSNumber numberWithUnsignedInt:layer.layerId]]; } } } self.dynamicLayer.visibleLayers = [visLayers mutableCopy]; [visLayers autorelease]; } }
- (void) setLayerVisibillity:(NSNumber *)layerId :(Boolean)visibillity { NSMutableArray *visibleLayers = [self.dynamicLayer.visibleLayers mutableCopy]; if (visibillity && ![visibleLayers containsObject:layerId]){ [visibleLayers addObject:layerId]; } else { [visibleLayers removeObject:layerId]; } self.dynamicLayer.visibleLayers = [visibleLayers mutableCopy]; [visibleLayers release]; //Doesn't work... //[self.dynamicLayer dataChanged]; //WorkAround, without the ZoomToEnvelope the layer visibillity doesnt change. [self.mapView zoomToEnvelope:self.mapView.envelope animated:true]; }
An ArcGIS Dynamic Map Service layer displays map content from an ArcGIS Server Map service. The Map service must not have been cached (tiled). The service generates map images when requested by the layer.
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.