public void RemoveLayers( IEnumerable<Layer> layers )
Public Sub RemoveLayers( _ ByVal layers As IEnumerable(Of Layer) _ )
Parameters
- layers
- An enumerable of layers
public void RemoveLayers( IEnumerable<Layer> layers )
Public Sub RemoveLayers( _ ByVal layers As IEnumerable(Of Layer) _ )
Exception | Description |
---|---|
ArcGIS.Core.CalledOnWrongThreadException | This method or property must be called within the lambda passed to QueuedTask.Run. |
var map = MapView.Active.Map; if (map == null) return; //Get the group layers first IReadOnlyList<GroupLayer> groupLayers = map.Layers.OfType<GroupLayer>().ToList(); //Iterate and remove the layers within the group layers that are unchecked. foreach (var groupLayer in groupLayers) { //Get layers that not visible within the group var layers = groupLayer.Layers.Where(l => l.IsVisible == false).ToList(); //Remove all the layers that are not visible within the group await QueuedTask.Run(() => map.RemoveLayers(layers)); } //Group Layers that are empty and are unchecked foreach (var group in groupLayers) { if (group.Layers.Count == 0 && group.IsVisible == false) //No layers in the group { //remove the group await QueuedTask.Run(() => map.RemoveLayer(group)); } } //Get Layers that are NOT Group layers and are unchecked var notAGroupAndUnCheckedLayers = map.Layers.Where(l => !(l is GroupLayer) && l.IsVisible == false).ToList(); //Remove all the non group layers that are not visible await QueuedTask.Run(() => map.RemoveLayers(notAGroupAndUnCheckedLayers));
Target Platforms: Windows 11, Windows 10