private void btnRemoveFeatures_Click(object sender, EventArgs e)
        {
            if (_layerName == null)
            {
                return;
            }
            if (listView1.SelectedIndices.Count == 0)
            {
                return;
            }
            ILabelLayer lyr = GetLabelLayer((_activeViewer as ICurrentRasterInteractiver), _layerName, null);

            if (lyr == null)
            {
                return;
            }
            for (int i = listView1.SelectedItems.Count - 1; i >= 0; i--)
            {
                lyr.RemoveFeature(listView1.SelectedItems[i].Tag as Feature);
                if (RemoveFeature != null)
                {
                    RemoveFeature(listView1.SelectedItems[i].Tag as Feature);
                }
                listView1.Items.Remove(listView1.SelectedItems[i]);
            }
            _activeViewer.Canvas.Refresh(enumRefreshType.VectorLayer);
        }
 /// <summary>
 /// Show the dialog to set up labels.
 /// </summary>
 /// <param name="e"></param>
 public void LabelSetup(ILabelLayer e)
 {
     using (var dlg = new LabelSetup {Layer = e})
     {
         ShowDialog(dlg);
     }
 }
 private void SaveToShp()
 {
     try
     {
         string      layerName = "System:StatArea";
         ILabelLayer lyr       = GetLabelLayer((_activeViewer as ICurrentRasterInteractiver), layerName, _fieldNames);
         if (lyr == null || lyr.GetAllFeature().Length == 0)
         {
             MsgBox.ShowInfo("没有绘制AOI!");
             return;
         }
         Feature[] features = lyr.GetAllFeature();
         using (SaveFileDialog dialog = new SaveFileDialog())
         {
             dialog.Filter = SupportedFileFilters.VectorFilterString;
             if (dialog.ShowDialog() == DialogResult.OK)
             {
                 string fileName = dialog.FileName;
                 TryExportPolygon(features, fileName);
                 StringBuilder str = new StringBuilder();
                 str.AppendLine("矢量导出成功:");
                 str.AppendLine(fileName);
                 MsgBox.ShowInfo(str.ToString());
             }
         }
     }
     catch (Exception ex)
     {
         MsgBox.ShowInfo(ex.Message);
     }
     finally
     {
     }
 }
Exemple #4
0
        private void btnRemoveFeatures_Click(object sender, EventArgs e)
        {
            if (_layerName == null)
            {
                return;
            }
            if (listView1.SelectedIndices.Count == 0)
            {
                return;
            }
            ILabelLayer lyr = FindLabelLayer(_layerName);

            if (lyr != null)
            {
                for (int i = listView1.SelectedItems.Count - 1; i >= 0; i--)
                {
                    lyr.RemoveFeature(listView1.SelectedItems[i].Tag as Feature);
                    if (RemoveFeature != null)
                    {
                        RemoveFeature(listView1.SelectedItems[i].Tag as Feature);
                    }
                    RemoveFeatureToDic(listView1.SelectedItems[i].Tag as Feature);
                    listView1.Items.Remove(listView1.SelectedItems[i]);
                }
            }
        }
Exemple #5
0
        private void ClearListViewItems()
        {
            if (listView1.Items.Count != 0)
            {
                for (int i = listView1.Items.Count - 1; i >= 0; i--)
                {
                    if (RemoveFeature != null)
                    {
                        RemoveFeature(listView1.Items[i].Tag as Feature);
                    }
                }
                listView1.Items.Clear();
            }
            ILabelLayer lyr = FindLabelLayer(_layerName);

            if (lyr != null)
            {
                lyr.Dispose();
            }
            ICanvasViewer viewer = _session.SmartWindowManager.ActiveCanvasViewer;

            if (viewer != null)
            {
                ILabelService srv = (viewer as ICurrentRasterInteractiver).LabelService;
                srv.Reset();
            }
            _iceLineFeatureOid = 0;
        }
Exemple #6
0
 /// <summary>
 /// Show the dialog to set up labels.
 /// </summary>
 /// <param name="e"></param>
 public void LabelSetup(ILabelLayer e)
 {
     using (var dlg = new LabelSetup {
         Layer = e
     })
     {
         ShowDialog(dlg);
     }
 }
Exemple #7
0
        public ILabelLayer GetLabelLayer(string name, string[] fieldNames)
        {
            if (_layers.ContainsKey(name))
            {
                return(_layers[name]);
            }
            ILabelLayer lyr = CreateLabelLayer(name, fieldNames);

            if (lyr != null)
            {
                _layers.Add(name, lyr);
                return(_layers[name]);
            }
            return(null);
        }
Exemple #8
0
 public void UpdateLayer(Feature fet)
 {
     if (fet != null)
     {
         ILabelLayer lyr = GetLabelLayer(_layerName, new string[] { _fieldName });
         if (lyr != null)
         {
             ApplyColor(lyr);
             lyr.LabelDef.Fieldname      = _fieldName;
             lyr.LabelDef.EnableLabeling = true;
             lyr.AddFeature(fet);
             AddFeatureToListView(fet);
         }
     }
 }
        private void ApplyColor(ILabelLayer lyr)
        {
            ISymbol symbol = lyr.Symbol;

            if (symbol == null)
            {
                return;
            }
            IFillSymbol fillSymbol = symbol as IFillSymbol;

            if (fillSymbol == null)
            {
                return;
            }
            fillSymbol.OutlineSymbol.Color = btnColor.BackColor;
        }
 public void UpdateLayer(ref Feature fet)
 {
     if (fet != null)
     {
         ILabelLayer lyr = GetLabelLayer((_activeViewer as ICurrentRasterInteractiver), _layerName, fet.FieldNames);
         if (lyr != null)
         {
             ApplyColor(lyr);
             lyr.LabelDef.Fieldname      = fet.FieldNames[0];
             lyr.LabelDef.EnableLabeling = true;
             lyr.AddFeature(fet);
             Feature[] features = lyr.GetAllFeature();
             fet = features[features.Length - 1];
             AddFeatureToListView(fet);
         }
     }
 }
Exemple #11
0
        public override void Run()
        {
            ILegendItem selectedItem = (GIS.FrameWork.Application.App.Legend as GIS.Common.Dialogs.Legend).SelectedLegendMenuItem;

            if (selectedItem != null)
            {
                LabelSetupCommand labelSetup  = new LabelSetupCommand();
                ILabelLayer       _labelLayer = labelSetup._LabelLayer;

                if (_labelLayer == null)
                {
                    return;
                }

                FeatureLayerActions fla = new FeatureLayerActions();
                if (fla != null)
                {
                    _labelLayer.DynamicVisibilityWidth = _labelLayer.FeatureLayer.MapFrame.ViewExtents.Width;
                    fla.LabelExtents(_labelLayer);
                }
            }
        }
Exemple #12
0
        public override void Run()
        {
            ILegendItem selectedItem = (GIS.FrameWork.Application.App.Legend as GIS.Common.Dialogs.Legend).SelectedLegendMenuItem;

            if (selectedItem != null)
            {
                if (_labelLayer == null)
                {
                    _labelLayer = new MapLabelLayer(selectedItem as IFeatureLayer);
                    (selectedItem as FeatureLayer).LabelLayer = _labelLayer;
                    (selectedItem as FeatureLayer).ShowLabels = true;
                }

                _labelLayer.CreateLabels();

                FeatureLayerActions fla = new FeatureLayerActions();
                if (fla != null)
                {
                    fla.LabelSetup(_labelLayer);
                }
            }
        }
        private void StatFilterAreas()
        {
            ICurrentRasterInteractiver inter = _session.SmartWindowManager.ActiveCanvasViewer as ICurrentRasterInteractiver;

            if (inter != null)
            {
                inter.StartAOIDrawing(GetPencilType(), (aoi, shape) =>
                {
                    string layerName = "System:StatArea";
                    ILabelLayer lyr  = GetLabelLayer((_activeViewer as ICurrentRasterInteractiver), layerName, _fieldNames);
                    if (lyr != null)
                    {
                        Dictionary <string, double> areas = StatArea(aoi, _filters);
                        _layerName = layerName;
                        //ApplyColor(lyr);
                        //lyr.LabelDef.Fieldname = "面积(平方公里)";

                        ApplyColor(lyr);
                        lyr.LabelDef.Fieldname      = _fieldNames[1];
                        lyr.LabelDef.EnableLabeling = true;

                        CodeCell.AgileMap.Core.Feature fet = null;
                        try
                        {
                            fet = ToFeature(shape, areas.Values.ToArray());
                        }
                        catch (Exception ex)
                        {
                            _session.PrintMessage(ex);
                        }
                        if (fet != null)
                        {
                            lyr.AddFeature(fet);
                            AddFeatureToListView(fet);
                        }
                    }
                });
            }
        }
 private void InitItems()
 {
     if (listView1.Items.Count != 0)
     {
         OID = 0;
         ILabelLayer lyr = GetLabelLayer((_activeViewer as ICurrentRasterInteractiver), _layerName, null);
         if (lyr == null)
         {
             return;
         }
         for (int i = listView1.Items.Count - 1; i >= 0; i--)
         {
             lyr.RemoveFeature(listView1.Items[i].Tag as Feature);
             if (RemoveFeature != null)
             {
                 RemoveFeature(listView1.Items[i].Tag as Feature);
             }
         }
         listView1.Items.Clear();
     }
     _activeViewer.Canvas.Refresh(enumRefreshType.VectorLayer);
 }
 private void InitFeature()
 {
     if (listView1.Items.Count != 0)
     {
         OID = 0;
         ILabelLayer lyr = GetLabelLayer((_activeViewer as ICurrentRasterInteractiver), _layerName, null);
         if (lyr == null)
         {
             return;
         }
         for (int i = listView1.Items.Count - 1; i >= 0; i--)
         {
             lyr.RemoveFeature(listView1.Items[i].Tag as Feature);
             if (RemoveFeature != null)
             {
                 RemoveFeature(listView1.Items[i].Tag as Feature);
             }
         }
         listView1.Items.Clear();
     }
     (_activeViewer as ICurrentRasterInteractiver).LabelService.Reset();
     _activeViewer.Canvas.CurrentViewControl = new DefaultControlLayer();
 }
        private void SataSimpleArea()
        {
            string[] lstViewfieldNames = new string[] { "名称", "像元个数", "面积(平方公里)" };
            string[] fieldNames        = new string[] { "name", "pixelcount", "area" };
            UpdateHeadersOfListView(lstViewfieldNames);
            ICurrentRasterInteractiver inter = _activeViewer as ICurrentRasterInteractiver;

            if (inter != null)
            {
                //inter
                inter.StartAOIDrawing(GetPencilType(), (aoi, shape) =>
                {
                    string layerName = "System:StatArea";
                    ILabelLayer lyr  = GetLabelLayer((_activeViewer as ICurrentRasterInteractiver), layerName, fieldNames);
                    if (lyr != null)
                    {
                        _layerName = layerName;
                        ApplyColor(lyr);
                        lyr.LabelDef.Fieldname             = "area";
                        CodeCell.AgileMap.Core.Feature fet = null;
                        try
                        {
                            fet = ToFeature(aoi, shape, fieldNames);
                        }
                        catch (Exception ex)
                        {
                            _session.PrintMessage(ex);
                        }
                        if (fet != null)
                        {
                            lyr.AddFeature(fet);
                            AddFeatureToListView(fet);
                        }
                    }
                });
            }
        }
 private void ClearFeature(ICanvasViewer cv)
 {
     if (listView1.Items.Count != 0)
     {
         OID = 0;
         ILabelLayer lyr = GetLabelLayer((cv as ICurrentRasterInteractiver), _layerName, null);
         if (lyr == null)
         {
             return;
         }
         for (int i = listView1.Items.Count - 1; i >= 0; i--)
         {
             lyr.RemoveFeature(listView1.Items[i].Tag as Feature);
             if (RemoveFeature != null)
             {
                 RemoveFeature(listView1.Items[i].Tag as Feature);
             }
         }
         listView1.Items.Clear();
     }
     (cv as ICurrentRasterInteractiver).LabelService.Reset();
     cv.Canvas.CurrentViewControl = new DefaultControlLayer();
     cv.Canvas.Refresh(enumRefreshType.VectorLayer);
 }
 /// <summary>
 /// Initializes a new instance of the LabelLayerEventArgs class.
 /// </summary>
 /// <param name="labelLayer">The ILabelLayer that is involved in this event.</param>
 public LabelLayerEventArgs(ILabelLayer labelLayer)
 {
     _labelLayer = labelLayer;
 }
Exemple #19
0
 /// <summary>
 /// A default method to generate a label layer.
 /// </summary>
 protected virtual void OnCreateLabels()
 {
     _labelLayer = new LabelLayer();
 }
Exemple #20
0
        protected override void Dispose(bool disposeManagedResources)
        {
            if (disposeManagedResources)
            {
                DataSet = null;
                Symbology = null;
                if (_labelLayer != null)
                {
                    _labelLayer.Dispose();
                    _labelLayer = null;
                }
                if (_selection != null)
                {
                    _selection.Changed -= SelectedFeaturesChanged;
                }
            }

            base.Dispose(disposeManagedResources);
        }
Exemple #21
0
 /// <summary>
 /// Initializes a new instance of the LabelLayerEventArgs class.
 /// </summary>
 /// <param name="labelLayer">The ILabelLayer that is involved in this event.</param>
 public LabelLayerEventArgs(ILabelLayer labelLayer)
 {
     _labelLayer = labelLayer;
 }
Exemple #22
0
 /// <summary>
 /// Show the dialog to set up labels.
 /// </summary>
 /// <param name="layer">Layer whose label setup dialog is shown.</param>
 public void LabelSetup(ILabelLayer layer)
 {
     using var dlg = new LabelSetup { Layer = layer };
     ShowDialog(dlg);
 }