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(""); } }
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); } }
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!"); }
/// <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(), "异常"); } }
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); } }
//选择要素(设置编辑目标图层) 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, "编辑工具选择要素"); } }
/// <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); }
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(); }
/// <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; } }
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"); } }
/// <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); } }