Ejemplo n.º 1
0
        /// <summary>
        /// Removes a layer group and all layers associated with this group
        /// </summary>
        /// <param name="map"></param>
        /// <param name="groupName"></param>
        /// <returns>The number of layers removed. Returns 0 if the group is empty or does not exist</returns>
        public static int RemoveLayerGroupAndChildLayers(this IMapDefinition map, string groupName)
        {
            Check.NotNull(map, "map");              //NOXLATE
            Check.NotEmpty(groupName, "groupName"); //NOXLATE

            var            affectedParentGroups = new Dictionary <string, List <IMapLayerGroup> >();
            IMapLayerGroup group = null;

            foreach (var grp in map.MapLayerGroup)
            {
                if (grp.Name == groupName)
                {
                    group = grp;
                }

                string parentGroupName = grp.Group;
                if (!string.IsNullOrEmpty(parentGroupName))
                {
                    if (!affectedParentGroups.ContainsKey(parentGroupName))
                    {
                        affectedParentGroups[parentGroupName] = new List <IMapLayerGroup>();
                    }
                    affectedParentGroups[parentGroupName].Add(grp);
                }
            }

            if (group != null)
            {
                List <IMapLayer> layers = new List <IMapLayer>(map.GetLayersForGroup(groupName));

                int removed = 0;
                //Remove layers first
                foreach (var l in layers)
                {
                    map.RemoveLayer(l);
                    removed++;
                }
                //Then the group
                map.RemoveGroup(group);

                //Then see if any child groups are under this group and remove them too
                if (affectedParentGroups.ContainsKey(group.Name))
                {
                    for (int i = 0; i < affectedParentGroups[group.Name].Count; i++)
                    {
                        var removeMe = affectedParentGroups[group.Name][i];
                        removed += map.RemoveLayerGroupAndChildLayers(removeMe.Name);
                    }
                }

                return(removed);
            }
            return(0);
        }
Ejemplo n.º 2
0
        private static void SetTempLayer(IMapDefinition mdf, string resourceId)
        {
            var layers = new List <IMapLayer>(mdf.MapLayer);

            for (int i = 0; i < layers.Count; i++)
            {
                mdf.RemoveLayer(layers[i]);
            }

            var layer = mdf.AddLayer(null, "x", resourceId); //NOXLATE

            layer.Visible     = true;
            layer.Selectable  = true;
            layer.Name        = "x"; //NOXLATE
            layer.LegendLabel = string.Empty;
        }
Ejemplo n.º 3
0
        private static void SetTempLayer(IMapDefinition mdf, string resourceId)
        {
            var layers = new List<IMapLayer>(mdf.MapLayer);
            for (int i = 0; i < layers.Count; i++)
            {
                mdf.RemoveLayer(layers[i]);
            }

            var layer = mdf.AddLayer(null, "x", resourceId); //NOXLATE
            layer.Visible = true;
            layer.Selectable = true;
            layer.Name = "x"; //NOXLATE
            layer.LegendLabel = string.Empty;
        }