コード例 #1
0
        private void cmdEdit_Click(object sender, EventArgs e)
        {
            if (cmdEdit.Text == "Edit")
            {
                IFeatureLayer featlayer = FindFeatureLayer("usa_major_highways");

                if (featlayer != null)
                {
                    m_engineEditor.StartEditing(((IDataset)featlayer.FeatureClass).Workspace, m_mapControl.Map);
                    IEngineEditLayers editLayer = (IEngineEditLayers)m_engineEditor;
                    editLayer.SetTargetLayer(featlayer, 0);
                    EnableButtons();

                    cmdEdit.Text = "Finish";
                    Color color = Color.Red;
                    cmdEdit.BackColor = color;
                    cmdCreate_Click(cmdCreate, null);
                }
            }
            else
            {
                SaveEdits();
                DisableButtons();
                cmdEdit.Text = "Edit";
                Color color = Color.White;
                cmdEdit.BackColor = color;
                SetErrorLabel("");
            }
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: wblong/GIS_Frag
        private void 赋值ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayerFrm lf = new LayerFrm(m_mapControl);

            lf.ShowDialog();
            ILayer        pLayer        = lf.PLayer;
            IFeatureClass pFeatureClass = (pLayer as IFeatureLayer).FeatureClass;
            IDataset      pDataset      = pFeatureClass as IDataset;
            IEngineEditor pEngineEditor = new EngineEditorClass();

            //开始编辑
            pEngineEditor.StartEditing(pDataset.Workspace, axMapControl1.Map);
            //开始操作
            pEngineEditor.StartOperation();
            //设置目标图层
            IEngineEditLayers pEditLayer = pEngineEditor as IEngineEditLayers;

            pEditLayer.SetTargetLayer(pLayer as IFeatureLayer, 0);
            //设置当前任务
            pEngineEditor.CurrentTask = new Utilities.CalculatContourTask() as IEngineEditTask;
            //执行绘制操作
            ICommand pSketch = new ControlsEditingSketchToolClass();

            pSketch.OnCreate(axMapControl1.Object);
            //pSketch.OnClick();
            axMapControl1.CurrentTool = pSketch as ITool;
            if (pEngineEditor.EditState == esriEngineEditState.esriEngineStateEditing)
            {
                pEngineEditor.StopEditing(true);
            }
        }
コード例 #3
0
        private void menuSelectLayer_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (menuSelectLayer.SelectedItem == null)
            {
                return;
            }
            string LayerName = menuSelectLayer.SelectedItem.ToString();

            for (int i = 0; i < axMapControl1.Map.LayerCount; i++)
            {
                ILayer layer = axMapControl1.get_Layer(i);
                if (layer.Name == LayerName)
                {
                    currentLayer = layer as IFeatureLayer;
                    break;
                }
            }
            //设置目标图层
            engineEditLayers.SetTargetLayer(currentLayer, 0);
            //获取当前编辑图层工作空间
            IDataset   pDataset   = currentLayer.FeatureClass as IDataset;
            IWorkspace pWorkspace = pDataset.Workspace;

            MessageBox.Show("OK!");
        }
コード例 #4
0
 /// <summary>
 /// 设置编辑图层
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cmbSelLayer_SelectedIndexChanged(object sender, EventArgs e)
 {
     try
     {
         string sLyrName = cmbSelLayer.SelectedItem.ToString();
         mCurrentLyr = MapOperation.GetLayerByName(mMap, sLyrName) as IFeatureLayer;
         mEngineEditLayers.SetTargetLayer(mCurrentLyr, 0);
     }
     catch (Exception ex)
     {
     }
 }
 //获取图层选择的选择框中的图层的名字
 private void barEditItem1_EditValueChanged(object sender, EventArgs e)
 {
     try
     {
         string strLayerName = this.barEditItem1.EditValue.ToString();
         pCurrentLayer = MapManagement.GetLayerByName(pMap, strLayerName) as IFeatureLayer;
         pEngineEditLayers.SetTargetLayer(pCurrentLayer, 0);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString(), "异常");
     }
 }
コード例 #6
0
        public void TargetLayerChanged(TargetLayerChangedEvent ev)
        {
            if (_engineEditor == null)
            {
                return;
            }

            if (_engineEditor.EditState == esriEngineEditState.esriEngineStateEditing)
            {
                _currentLayer = ev.TargerLayer;
                IEngineEditLayers editorLayer = (IEngineEditLayers)_engineEditor;
                editorLayer.SetTargetLayer(_currentLayer, 0);
            }
        }
コード例 #7
0
 //选择要素(设置编辑目标图层)
 private void cbxEditorFeature_EditValueChanged(object sender, EventArgs e)
 {
     EditorInit();
     try
     {
         string sLyrName = cbxEditorFeature.EditValue.ToString();
         pCurrentLyr = MapManager.GetLayerByName(pMap, sLyrName) as IFeatureLayer;
         //设置编辑目标图层
         pEngineEditLayers.SetTargetLayer(pCurrentLyr, 0);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
         PS.Plot.Common.LogHelper.WriteLog(typeof(Form_Editor), ex, "编辑工具选择要素");
     }
 }
コード例 #8
0
ファイル: MainPage.cs プロジェクト: wushaungluanwu/MYGIS
        /// <summary>
        /// 选中图层
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void selectLayer_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (selectLayer.SelectedItem == null)
            {
                return;
            }
            string lyrName = selectLayer.SelectedItem.ToString();
            ILayer layer   = this.presenter.SelectedIndexChanged(lyrName);

            if (layer == null)
            {
                return;
            }
            pCurrentLyr = layer as IFeatureLayer;
            IDataset   pDataset = pCurrentLyr.FeatureClass as IDataset;
            IWorkspace pws      = pDataset.Workspace;

            pEngineEditLayers.SetTargetLayer(pCurrentLyr, 0);
        }
コード例 #9
0
        private void startEdit_ToolbarItem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            IBasicMap          map           = null;
            ILayer             selectedLayer = null;
            object             unk           = null;
            object             data          = null;
            esriTOCControlItem item          = esriTOCControlItem.esriTOCControlItemNone;

            m_tocControl.GetSelectedItem(ref item, ref map, ref selectedLayer, ref unk, ref data);

            if (item == esriTOCControlItem.esriTOCControlItemLayer)
            {
                // 启动编辑
                if (pEngineEditor.EditState != esriEngineEditState.esriEngineStateNotEditing)
                {
                    return;
                }

                IFeatureLayer featurelayer = selectedLayer as IFeatureLayer;
                IDataset      dataset      = featurelayer.FeatureClass as IDataset;
                IWorkspace    workspace    = dataset.Workspace;

                pEngineEditor.StartEditing(workspace, m_mapControl.Map);
                ((IEngineEditLayers)pEngineEditor).SetTargetLayer(featurelayer, -1);

                pEngineEditor.StartOperation();

                // 设置目标图层
                IEngineEditLayers pEditLayer = pEngineEditor as IEngineEditLayers;
                pEditLayer.SetTargetLayer(featurelayer, 0);
                targetLayer_ToolbarText.Caption += " " + featurelayer.Name;

                featureEditor_ToolbarItem_ItemClick(null, null);

                featureEditToolbar.Visible = true;
            }
            ICommand pcommand = new ControlsEditingStartCommand();

            pcommand.OnCreate(m_mapControl.Object);
            pcommand.OnClick();
        }
コード例 #10
0
ファイル: MainForm.cs プロジェクト: hengyu123/AE_Dev
        /// <summary>
        /// 编辑所选图层
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void editLayer_ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pEngineEditor = new EngineEditorClass();
            IBasicMap          map           = null;
            ILayer             selectedLayer = null;
            object             unk           = null;
            object             data          = null;
            esriTOCControlItem item          = esriTOCControlItem.esriTOCControlItemNone;

            m_tocControl.GetSelectedItem(ref item, ref map, ref selectedLayer, ref unk, ref data);

            if (item == esriTOCControlItem.esriTOCControlItemLayer)
            {
                //启动编辑
                if (pEngineEditor.EditState != esriEngineEditState.esriEngineStateNotEditing)
                {
                    return;
                }
                IFeatureLayer featurelayer = selectedLayer as IFeatureLayer;
                IDataset      dataset      = featurelayer.FeatureClass as IDataset;
                IWorkspace    workspace    = dataset.Workspace;

                pEngineEditor.StartEditing(workspace, m_mapControl.Map);
                ((IEngineEditLayers)pEngineEditor).SetTargetLayer(featurelayer, -1);

                pEngineEditor.StartOperation();

                //设置目标图层
                IEngineEditLayers pEditLayer = pEngineEditor as IEngineEditLayers;
                pEditLayer.SetTargetLayer(featurelayer, 0);
                m_editinglayer.Caption += " " + featurelayer.Name;

                ICommand t_editcommand = new ESRI.ArcGIS.Controls.ControlsEditingEditToolClass();
                t_editcommand.OnCreate(m_mapControl.Object);
                m_mapControl.CurrentTool = t_editcommand as ITool;
                t_editcommand.OnClick();

                map_edittools.Visible = true;
            }
        }
コード例 #11
0
        private void cmbSelLayer_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                string sLyrName = cmbSelLayer.SelectedItem.ToString();
                pCurrentLyr = MapManager.GetLayerByName(pMap, sLyrName) as IFeatureLayer;
                //设置编辑目标层
                pEngineEditLayers.SetTargetLayer(pCurrentLyr, 0);

                for (int i = 0; i < axMap.LayerCount; i++)
                {
                    axMap.Map.Layer[i].Visible = false;
                }
                axMap.Map.Layer[cmbSelLayer.SelectedIndex].Visible = true;
                axMap.ActiveView.Refresh();
                // MessageBox.Show(cmbSelLayer.SelectedIndex.ToString());
                //pCurrentLyr.Visible = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("err");
            }
        }
コード例 #12
0
ファイル: Form1.cs プロジェクト: 609878415/fff12138
        /// <summary>
        /// 开始编辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Star_Edit_Click(object sender, EventArgs e)
        {
            if (flaglayer == null)
            {
                MessageBox.Show("请选取图层");
                return;
            }
            else
            {

                istoolenable(true);
                //for (int i = 0; i < axMapControl1.LayerCount;i++)
                //mlayer = axMapControl1.Map.get_Layer(0);
                m_map = axMapControl1.Map;
                //mlayer = getLayerByName(m_map, comboBox1.SelectedText);
                mfeaturelayer = flaglayer as IFeatureLayer;
                mlayer = flaglayer;

                mfeatureclass = mfeaturelayer.FeatureClass;
                dataset = mfeatureclass as IDataset;
                mworkspace = dataset.Workspace;
                CurWorkspaceEdit = mworkspace as IWorkspaceEdit;

                //CurWorkspaceEdit.StartEditing(true);
                //CurWorkspaceEdit.StartEditOperation();

                mEngineEditor.StartEditing(mworkspace, m_map);
                mEngineEditLayer = mEngineEditor as IEngineEditLayers;
                mEngineEditLayer.SetTargetLayer(mfeaturelayer, 0);
                //((IEngineEditLayers)mEngineEditor).SetTargetLayer(mfeaturelayer, 0);

            }
        }