Пример #1
0
        public override void Run(LegendCommand command)
        {
            Shapefile sf    = null;
            var       layer = _legend.Layers.ItemByHandle(LayerHandle);

            if (layer != null)
            {
                sf = layer.GetObject() as Shapefile;
            }

            switch (command)
            {
            case LegendCommand.CalculateArea:
                break;

            case LegendCommand.RemoveLayer:
                LayerHelper.RemoveLayer();
                break;

            case LegendCommand.LoadLayerStyle:
                LayerHelper.LoadLayerStyle();
                break;

            case LegendCommand.SaveLayerStyle:
                LayerHelper.SaveCurrentStyle();
                break;

            //case LegendCommand.ImportOgrLayer:
            //    LayerHelper.ImportOgrLayer();
            //    break;
            case LegendCommand.ZoomToLayer:
                _legend.Map.ZoomToLayer(LayerHandle);
                break;

            case LegendCommand.Labels:
            {
                using (Form form = new LabelStyleForm(_legend, sf, LayerHandle))
                {
                    form.ShowDialog(MainForm.Instance);
                    _legend.Refresh();
                }
            }
            break;

            case LegendCommand.Properties:
                LayerHelper.ShowLayerProperties(LayerHandle);
                break;
            }
        }
Пример #2
0
        /// <summary>
        /// 右键菜单移除项处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void removeItem_Click(object sender, EventArgs e)
        {
            int  layerHandle       = App.Legend.SelectedLayer;
            Node node              = findNode(x => x.LegendHandle == layerHandle && x.NodeType == NodeType.layer);
            int  parentGroupHandle = node.ParentGroupHandle;

            LayerHelper.RemoveLayer();
            LegendNodes.Remove(node);
            //如果该组没有图层了,就移除该组
            if (Legend.Groups[parentGroupHandle].LayerCount == 0)
            {
                Node groupNode = findNode(x => x.LegendHandle == parentGroupHandle && x.NodeType == NodeType.group);
                LegendNodes.Remove(groupNode);
                Legend.Groups.Remove(parentGroupHandle);
            }
            RefreshUI();
        }