private void Update(int status, IFeatureLayer buildingsfeaturelayer) { //Get the editor _editor = GetEditorFromArcMap(_application as IMxApplication); if (_editor == null) { MessageBox.Show("Editor version of ArcMap required.", "Building Inspector", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } if (_editor.EditState != esriEditState.esriStateEditing) { MessageBox.Show("Start an edit session first.", "Building Inspector", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } IFeatureSelection featureselection = buildingsfeaturelayer as IFeatureSelection; if (featureselection.SelectionSet.Count == 0) { MessageBox.Show("Select at least one feature.", "Building Inspector", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } IFeatureClass featureclass = buildingsfeaturelayer.FeatureClass; IEnumIDs enumIDs = featureselection.SelectionSet.IDs; _editor.StartOperation(); enumIDs.Reset(); int intOID = enumIDs.Next(); while (intOID != -1) { IFeature feature = featureclass.GetFeature(intOID); if (feature != null) { int inspectionfieldindex = _utilitiesArcMap.FindField(featureclass, "rsi"); if (inspectionfieldindex > -1) { //_editor.StartOperation(); feature.set_Value(inspectionfieldindex, status); //_editor.StopOperation("Status updated!" + feature.OID); feature.Store(); } else { throw new Exception("Selected layer does not have the 'rsi field'."); } } intOID = enumIDs.Next(); } _activeView.Refresh(); _editor.StopOperation("Inspected..."); GetStatus(); }
/// <summary> /// 显示选中属性 /// </summary> public void ShowSelectionAttribute() { this.pAttributeMode = AtrributesMode.SelectionAttribute; this.tSB_AllAttribute.Checked = false; this.tSB_SelectAttribute.Checked = true; this.SetDataGridViewColumn(); //设置DataGridView的列 //设置 DataGridView的行 IFeatureSelection pFeatureSelection = (IFeatureSelection)Variable.pAttributeTableFeatureLayer; IEnumIDs pEnumIDs = pFeatureSelection.SelectionSet.IDs; int pFid = pEnumIDs.Next(); while (pFid != -1) { IFeature pFeature = Variable.pAttributeTableFeatureLayer.FeatureClass.GetFeature(pFid); object[] cellValue = new object[dataGridView1.ColumnCount]; //新建一行 for (int i = 0; i < this.dataGridView1.ColumnCount; i++) { cellValue[i] = pFeature.get_Value(i); if (cellValue[i] != null && cellValue[i].ToString().Trim() == "") { cellValue[i] = null; } } this.dataGridView1.Rows.Add(cellValue); pFid = pEnumIDs.Next(); } dataGridView1.ClearSelection();// 清除所有选中单元格 toolStripStatusLabel1.Text = string.Format("选中了 {0} 条记录,共 {1} 条记录", this.dataGridView1.SelectedRows.Count, this.dataGridView1.RowCount); }
/// <summary> /// 根据表,OIDs构造查询条件 /// </summary> /// <param name="pTable"></param> /// <param name="OIDs"></param> /// <param name="isSwitch"></param> /// <returns></returns> public static string GetQuerySQL(ITable pTable, IEnumIDs OIDs, bool isSwitch) { string tmpStr = pTable.OIDFieldName; if (OIDs == null) { return(tmpStr + " in ()"); } OIDs.Reset(); if (isSwitch) { tmpStr += " not in ("; } else { tmpStr += " in ("; } int oid = -1; oid = OIDs.Next(); if (oid != -1) { while (oid != -1) { tmpStr += oid.ToString() + " , "; oid = OIDs.Next(); } tmpStr = tmpStr.Remove(tmpStr.Length - 3, 3); } tmpStr += ")"; return(tmpStr); }
public override void OnClick() { if (m_MergeLayer != null) { List <int> OIDLst = new List <int>(); IFeatureSelection pFeatSel = m_MergeLayer as IFeatureSelection; ISelectionSet pSelectionSet = pFeatSel.SelectionSet; //如果选择的要素多余一个,则可以开始融合 if (pSelectionSet.Count > 1) { int pOID = -1; IEnumIDs pEnumIDs = pSelectionSet.IDs; pEnumIDs.Reset(); pOID = pEnumIDs.Next(); while (pOID != -1) { OIDLst.Add(pOID); pOID = pEnumIDs.Next(); } frmDataMerge pfrmDataMerge = new frmDataMerge(m_MergeLayer.FeatureClass, OIDLst, m_Hook); pfrmDataMerge.ShowDialog(); } } }
private IEnvelope GetLayerSelectedFeaturesEnvelope(IFeatureLayer pFeatLyr) { IEnvelope layerEnvelope = null; IFeatureClass pFeatCls = pFeatLyr.FeatureClass; IFeatureSelection selectLayer = pFeatLyr as IFeatureSelection; ISelectionSet selectionSet = selectLayer.SelectionSet; IEnumIDs enumIDs = selectionSet.IDs; IFeature feature; int i = 1; int iD = enumIDs.Next(); while (iD != -1) //-1 is reutned after the last valid ID has been reached { feature = pFeatCls.GetFeature(iD); IEnvelope envelope = feature.ShapeCopy.Envelope; if (i == 1) { layerEnvelope = envelope; } else { layerEnvelope.Union(envelope); } i++; iD = enumIDs.Next(); } return(layerEnvelope); }
private void ApplyDomain(DomainCode code) { if (CheckRequirements()) { IFeatureLayer featureLayer = _utilities.FeatureLayer(cboFeatureLayer.Text); IFeatureClass featureClass = featureLayer.FeatureClass; IFeatureSelection featureSelection = featureLayer as IFeatureSelection; IEnumIDs enumIDs = featureSelection.SelectionSet.IDs; int fieldIndex = _utilities.FindField(featureClass, cboField.Text); _editor.StartOperation(); enumIDs.Reset(); int intOID = enumIDs.Next(); while (intOID != -1) { IFeature feature = featureClass.GetFeature(intOID); if (feature != null) { feature.set_Value(fieldIndex, (int)code); feature.Store(); } intOID = enumIDs.Next(); } _activeView.Refresh(); _editor.StopOperation("Update Class Type"); } }
public override void OnClick() { try { if (MessageBox.Show("是否删除所选择的要素?", "提示", MessageBoxButtons.YesNo) != DialogResult.No) { Editor.UniqueInstance.StartEditOperation(); IFeatureSelection targetLayer = Editor.UniqueInstance.TargetLayer as IFeatureSelection; IEnumIDs iDs = targetLayer.SelectionSet.IDs; iDs.Reset(); for (int i = iDs.Next(); i != -1; i = iDs.Next()) { IFeature editFeature = Editor.UniqueInstance.TargetLayer.FeatureClass.GetFeature(i); AttributeManager.AttributeDeleteHandleClass.AttributeDelete(editFeature); editFeature.Delete(); } this._hookHelper.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection | esriViewDrawPhase.esriViewGeography, Editor.UniqueInstance.TargetLayer, this._hookHelper.ActiveView.Extent); Editor.UniqueInstance.StopEditOperation("delete"); } } catch (Exception exception) { Editor.UniqueInstance.AbortEditOperation(); this._mErrOpt.ErrorOperate(this._mSubSysName, "ShapeEdit.Delete1", "OnClick", exception.GetHashCode().ToString(), exception.Source, exception.Message, "", "", ""); } }
private void frmAttributeTable_FeatureLayerSelectionChanged() { if ((this.m_pTable is IFeatureSelection) && this.m_CanDoFeatureLayerSelectChange) { this.m_CanDoSelectChange = false; IFeatureSelection pTable = this.m_pTable as IFeatureSelection; IEnumIDs iDs = pTable.SelectionSet.IDs; iDs.Reset(); int num = iDs.Next(); string oIDFieldName = (this.m_pTable as IFeatureLayer).FeatureClass.OIDFieldName; int num2 = 0; while (num != -1) { ((GridView)this.dataGrid1.MainView).ClearSelection(); for (int i = num2; i < ((GridView)this.dataGrid1.MainView).RowCount; i++) { object row = ((GridView)this.dataGrid1.MainView).GetRow(i); if ((row is DataRowView) && (Convert.ToInt32((row as DataRowView).Row[oIDFieldName]) == num)) { ((GridView)this.dataGrid1.MainView).SelectRow(i); num2 = i + 1; break; } } num = iDs.Next(); } this.m_CanDoSelectChange = true; } }
//线构面 public static void MakePolygonFromPolyline(IWorkspaceEdit pWorkspaceEdit, IFeatureLayer pPolyLineFeaLayer, IFeatureLayer pPolygonFeaLayer) { if (pPolyLineFeaLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPolyline) { return; } if (pPolygonFeaLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPolygon) { return; } pWorkspaceEdit.StartEditOperation(); IFeatureSelection pFeaSelection = pPolyLineFeaLayer as IFeatureSelection; ISelectionSet pSelectionSet = pFeaSelection.SelectionSet; IEnumIDs pEnumIDs = pSelectionSet.IDs; int ID = pEnumIDs.Next(); while (ID != -1) { IFeature pFeature = pPolyLineFeaLayer.FeatureClass.GetFeature(ID); if (pFeature == null) { continue; } IPolyline pPolyLine = pFeature.ShapeCopy as IPolyline; //将选择的线转变成面,并作为面层Feature IPolygon pPolygon = PolylineToPolygon(ref pPolyLine); IFeature pPolygonFeature = pPolygonFeaLayer.FeatureClass.CreateFeature(); pPolygonFeature.Shape = pPolygon; pPolygonFeature.Store(); //拷贝属性 for (int i = 0; i < pFeature.Fields.FieldCount; i++) { string sFieldName = pFeature.Fields.get_Field(i).Name; if (sFieldName == "SHAPE") { continue; } int iIndex = pPolygonFeature.Fields.FindField(sFieldName); if ((iIndex > -1) && (pPolygonFeature.Fields.get_Field(iIndex).Editable == true)) { pPolygonFeature.set_Value(iIndex, pFeature.get_Value(i)); } } ID = pEnumIDs.Next(); } pWorkspaceEdit.StopEditOperation(); }
private void BuildFileList() { _fileList.Clear(); IFeatureLayer featureLayer = ((CustomLayer)cbo_layers.SelectedItem).FeatureLayer(); IFeatureClass featureClass = ((CustomLayer)cbo_layers.SelectedItem).FeatureClass(); if (rb_all.Checked) { IFeatureCursor cursor = featureClass.Search(null, false); IFields fields = cursor.Fields; int fieldIndex = _utilitiesArcMap.FindField(featureClass, cbo_fieldname.Text); IFeature feature = cursor.NextFeature(); while (feature != null) { //string fileName = Utilities.Utilities_General.AddPrefixAndSuffixToFileName(Convert.ToString(feature.get_Value(fieldIndex)), txb_prefix.Text, txb_suffix.Text); string fileName = Convert.ToString(feature.get_Value(fieldIndex)); if (!_fileList.ContainsKey(fileName)) { _fileList.Add(fileName, false); } feature = cursor.NextFeature(); } } if (rb_selected.Checked) { IFeatureSelection selection = featureLayer as IFeatureSelection; IEnumIDs IDs = selection.SelectionSet.IDs; IDs.Reset(); int oid = IDs.Next(); while (oid != -1) { IFeature feature = featureClass.GetFeature(oid); if (feature != null) { int fieldIndex = _utilitiesArcMap.FindField(featureClass, cbo_fieldname.Text); string fileName = Convert.ToString(feature.get_Value(fieldIndex)); if (!_fileList.ContainsKey(fileName)) { _fileList.Add(fileName, false); } oid = IDs.Next(); } } } }
private void GenerateFileList() { // Clear File List _fileList.Clear(); IFeatureLayer featureLayer = _utilitiesArcMap.FeatureLayer(cbo_TileIndex.Text); IFeatureClass featureClass = featureLayer.FeatureClass; if (rb_all.Checked) // Grab All Of The Raster :) { IFeatureCursor cursor = featureClass.Search(null, false); IFields fields = cursor.Fields; int fieldIndex = _utilitiesArcMap.FindField(featureClass, cbo_FieldName.Text); IFeature feature = cursor.NextFeature(); while (feature != null) { // Default To True I will validate After Adding All To Dictonary if (!_fileList.ContainsKey(Convert.ToString(feature.get_Value(fieldIndex)))) { _fileList.Add(Convert.ToString(feature.get_Value(fieldIndex)), true); } feature = cursor.NextFeature(); } } else // Grab Only The Selected Tiles { IFeatureSelection featureSelection = featureLayer as IFeatureSelection; IEnumIDs enumIDs = featureSelection.SelectionSet.IDs; enumIDs.Reset(); int intOID = enumIDs.Next(); while (intOID != -1) { IFeature feature = featureClass.GetFeature(intOID); if (feature != null) { int fieldIndex = _utilitiesArcMap.FindField(featureClass, cbo_FieldName.Text); // Default To True I will validate After Adding All To Dictonary if (!_fileList.ContainsKey(Convert.ToString(feature.get_Value(fieldIndex)))) { _fileList.Add(Convert.ToString(feature.get_Value(fieldIndex)), true); } } intOID = enumIDs.Next(); } } }
/// <summary> /// Creates an <see cref="IEnumerable{T}" /> from an <see cref="IEnumIDs" /> /// </summary> /// <param name="source">An <see cref="IEnumIDs" /> to create an <see cref="IEnumerable{T}" /> from.</param> /// <returns>An <see cref="IEnumerable{T}" /> that contains the values from the input source.</returns> public static IEnumerable <int> AsEnumerable(this IEnumIDs source) { if (source != null) { source.Reset(); int oid = source.Next(); while (oid >= 0) { yield return(oid); oid = source.Next(); } } }
public void Extend(IFeatureSelection featureSelection, double searchTolerance) { IFeatureLayer featureLayer = (IFeatureLayer)featureSelection; IEnumIDs enumIDs = featureSelection.SelectionSet.IDs; int i = -1; int c = 0; int t = featureSelection.SelectionSet.Count; this.CounterExtended = 0; this.CounterNotExtended = 0; while ((i = enumIDs.Next()) != -1) { try { c++; OnExtendFeatureProgress(c, t, "Begin"); IFeature feature = featureLayer.FeatureClass.GetFeature(i); Extend(feature, searchTolerance); OnExtendFeatureProgress(c, t, "End"); } catch (Exception ex) { System.Diagnostics.Trace.WriteLine("Exception on " + c.ToString() + " of " + t.ToString()); System.Diagnostics.Trace.WriteLine(ex.StackTrace); } } OnAfterExtendFeatures(t, this.CounterExtended, this.CounterNotExtended); }
/// <summary> /// Gets a stack of objectids to update /// </summary> /// <returns>integer stack of feature object ids</returns> private Stack <int> GetObjectIds() { Stack <int> objectIDs = new Stack <int>(); IFeatureSelection featureSelection = (IFeatureSelection)this.FeatureLayer; if (checkBoxUseSelected.Checked && featureSelection.SelectionSet.Count > 0) { ISelectionSet selectionSet = featureSelection.SelectionSet; IEnumIDs enumObjectIDs = selectionSet.IDs; int i = -1; while ((i = enumObjectIDs.Next()) != -1) { objectIDs.Push(i); } } else { IFeatureCursor cursor = this.FeatureLayer.FeatureClass.Search(null, true); IFeature feature = null; while ((feature = cursor.NextFeature()) != null) { objectIDs.Push(feature.OID); } } return(objectIDs); }
private void DeleteSelectedFeatures() { IFeatureClass pFeatCls = currentLayer.FeatureClass; IFeatureSelection selectLayer = currentLayer as IFeatureSelection; ISelectionSet selectionSet = selectLayer.SelectionSet; IEnumIDs enumIDs = selectionSet.IDs; IFeature feature; int iD = enumIDs.Next(); while (iD != -1) //-1 is reutned after the last valid ID has been reached { feature = pFeatCls.GetFeature(iD); feature.Delete(); iD = enumIDs.Next(); } }
/// <summary> /// Reads all rows whose OIDs are within the specified collection and returns them as a (lazily-evaluated) sequence of objects of the specified type. The returned collection is not sorted. This method does not "reset" the input IEnumIDs object. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="table"></param> /// <param name="enumIDs"></param> /// <returns></returns> public static IEnumerable <T> Map <T>(this ITable table, IEnumIDs enumIDs) where T : MappableFeature, new() { var oids = Enumerable.Range(0, int.MaxValue) .Select(n => enumIDs.Next()) .TakeWhile(n => n != -1); return(table.Map <T>(oids)); }
public List <IFeature> GetSelectedFeatures() { List <IFeature> list = new List <IFeature>(); if (this.TargetLayer != null) { IFeatureSelection targetLayer = this.TargetLayer as IFeatureSelection; IEnumIDs iDs = targetLayer.SelectionSet.IDs; iDs.Reset(); for (int i = iDs.Next(); i != -1; i = iDs.Next()) { IFeature item = this.TargetLayer.FeatureClass.GetFeature(i); list.Add(item); } } return(list); }
private void InitialFrm(List <IFeatureLayer> layerList) { foreach (IFeatureLayer aFeatLay in layerList) { IFeatureSelection featSel = aFeatLay as IFeatureSelection; int fdIndex = aFeatLay.FeatureClass.Fields.FindField("SourceOID"); if (fdIndex == -1) { continue; } IEnumIDs pEnumIDs = featSel.SelectionSet.IDs; int ID = pEnumIDs.Next(); StringBuilder sb = new StringBuilder(); while (ID != -1) { IFeature pFeat = aFeatLay.FeatureClass.GetFeature(ID); if (sb.Length != 0) { sb.Append(","); } sb.Append(pFeat.get_Value(fdIndex).ToString()); ID = pEnumIDs.Next(); } IQueryFilter queryFilter = new QueryFilterClass(); queryFilter.WhereClause = "SourceOID in (" + sb.ToString() + ")"; IFeatureLayerDefinition featLayDef = aFeatLay as IFeatureLayerDefinition; featLayDef.DefinitionExpression = ""; featSel.SelectFeatures(queryFilter, esriSelectionResultEnum.esriSelectionResultNew, false); featSel.SelectionChanged(); IFeatureLayer selFeatLay = featLayDef.CreateSelectionLayer(aFeatLay.Name, true, "", ""); IGeoFeatureLayer pGeoFeatureLayer = aFeatLay as IGeoFeatureLayer; if (pGeoFeatureLayer != null) { (selFeatLay as IGeoFeatureLayer).Renderer = pGeoFeatureLayer.Renderer; } this.axMapControl.Map.AddLayer(selFeatLay); } SysCommon.Gis.ModGisPub.LayersCompose(this.axMapControl.Object as IMapControlDefault); InitialSliderItem(this.axMapControl.Object as IMapControlDefault); InitialbarMap(); }
private void Delete(IFeatureLayer buildingsfeaturelayer) { //Get the editor _editor = GetEditorFromArcMap(_application as IMxApplication); if (_editor == null) { MessageBox.Show("Editor version of ArcMap required.", "Building Inspector", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } if (_editor.EditState != esriEditState.esriStateEditing) { MessageBox.Show("Start an edit session first.", "Building Inspector", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } IFeatureSelection featureselection = buildingsfeaturelayer as IFeatureSelection; if (featureselection.SelectionSet.Count == 0) { MessageBox.Show("Select at least one feature.", "Building Inspector", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } IFeatureClass featureclass = buildingsfeaturelayer.FeatureClass; IEnumIDs enumIDs = featureselection.SelectionSet.IDs; enumIDs.Reset(); int intOID = enumIDs.Next(); while (intOID != -1) { IFeature feature = featureclass.GetFeature(intOID); if (feature != null) { _editor.StartOperation(); feature.Delete(); _editor.StopOperation("Status updated!" + feature.OID); feature.Store(); } intOID = enumIDs.Next(); } _activeView.Refresh(); }
private void PrintSelectionSet(ISelectionSet ss) { IEnumIDs enumIDs = ss.IDs as IEnumIDs; try { int oid = enumIDs.Next(); while (oid != -1) { System.Diagnostics.Debug.WriteLine("OID:" + oid); oid = enumIDs.Next(); } } catch { System.Diagnostics.Debug.WriteLine("End of enum!"); } }
private void UpdateDataGridView(ISelectionSet selectedFeatures) { IEnumIDs enumIDs = selectedFeatures.IDs; int iD = enumIDs.Next(); while (iD != -1) //-1 is reutned after the last valid ID has been reached { for (int i = 0; i < dataGridView1.RowCount - 1; i++) { if (dataGridView1.Rows[i].Cells[0].Value.ToString() == iD.ToString()) { dataGridView1.Rows[i].Selected = true; } } iD = enumIDs.Next(); } }
private void method_2(TreeNode treeNode_0, ISelectionSet iselectionSet_0, IConflictClass iconflictClass_0) { IEnumIDs iDs = iselectionSet_0.IDs; iDs.Reset(); for (int i = iDs.Next(); i != -1; i = iDs.Next()) { TreeNode node = new TreeNode(i.ToString()); RowCollection unk = new RowCollection { ConflictClass = iconflictClass_0 }; this.iarray_0.Add(unk); unk.OID = i; node.Tag = unk; treeNode_0.Nodes.Add(node); } }
public static void DeletedSelectedZD(IFeatureSelection ifeatureSelection_0) { IEnumIDs ds = ifeatureSelection_0.SelectionSet.IDs; ds.Reset(); int num = ds.Next(); List <IFeature> features = new List <IFeature>(); IFeatureClass featureClass = (ifeatureSelection_0 as IFeatureLayer).FeatureClass; while (num > 0) { features.Add(featureClass.GetFeature(num)); num = ds.Next(); } foreach (IFeature feature in features) { ZDEditTools.DeleteZD(feature); } }
public ISelectionSetBarriers GetSelectionSetBarries() { int featureClassID = this._networkInfo.LayerPoint.FeatureClass.FeatureClassID; ISelectionSetBarriers selectionSetBarriers = new SelectionSetBarriers(); IFeatureSelection featureSelection = (IFeatureSelection)this._networkInfo.LayerPoint; IQueryFilter barrierQuery = this.GetBarrierQuery(); featureSelection.SelectFeatures(barrierQuery, 0, false); IEnumIDs iDs = featureSelection.SelectionSet.IDs; iDs.Reset(); for (int i = iDs.Next(); i > 0; i = iDs.Next()) { if (this.listOutBarriers.Items.IndexOf(i.ToString()) == -1) { selectionSetBarriers.Add(featureClassID, i); } } return(selectionSetBarriers); }
public static void DeletedSelectedZD(IFeatureSelection ifeatureSelection_0) { IEnumIDs iDs = ifeatureSelection_0.SelectionSet.IDs; iDs.Reset(); int i = iDs.Next(); System.Collections.Generic.List <IFeature> list = new System.Collections.Generic.List <IFeature>(); IFeatureClass featureClass = (ifeatureSelection_0 as IFeatureLayer).FeatureClass; while (i > 0) { IFeature feature = featureClass.GetFeature(i); list.Add(feature); i = iDs.Next(); } foreach (IFeature current in list) { ZDEditTools.DeleteZD(current); } }
private bool ReconcileVersionFindConflicts(IFeatureWorkspace pFeatureWorkspace, string strTargetVersion) { try { bool flag = false; IVersionEdit edit = pFeatureWorkspace as IVersionEdit; edit.CanPost(); if (edit.Reconcile(strTargetVersion)) { IVersion startEditingVersion = edit.StartEditingVersion; IVersion preReconcileVersion = edit.PreReconcileVersion; IVersion commonAncestorVersion = edit.CommonAncestorVersion; IVersion reconcileVersion = edit.ReconcileVersion; IEnumConflictClass conflictClasses = edit.ConflictClasses; conflictClasses.Reset(); for (IConflictClass class3 = conflictClasses.Next(); class3 != null; class3 = conflictClasses.Next()) { IDataset dataset = (IDataset)class3; if (class3.HasConflicts) { flag = true; string str = dataset.Name + ":"; IEnumIDs iDs = class3.UpdateUpdates.IDs; iDs.Reset(); int num = iDs.Next(); while (num != -1) { str = str + num.ToString() + ";"; num = iDs.Next(); } iDs = class3.DeleteUpdates.IDs; iDs.Reset(); num = iDs.Next(); while (num != -1) { str = str + num.ToString() + ";"; num = iDs.Next(); } iDs = class3.UpdateDeletes.IDs; iDs.Reset(); for (num = iDs.Next(); num != -1; num = iDs.Next()) { str = str + num.ToString() + ";"; } MessageBox.Show("发现冲突," + str, "版本编辑", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { MessageBox.Show(dataset.Name + " Does Not Have Conflicts", "版本编辑", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } } return(flag); } catch (Exception exception) { this.mErrOpt.ErrorOperate(this.mSubSysName, "ShapeEdit.Editor", "ReconcileVersionFindConflicts", exception.GetHashCode().ToString(), exception.Source, exception.Message, "", "", ""); return(false); } }
private void ApplyDomainNull() { if (CheckRequirements()) { try { IFeatureLayer featureLayer = _utilities.FeatureLayer(cboFeatureLayer.Text); IFeatureClass featureClass = featureLayer.FeatureClass; IFeatureSelection featureSelection = featureLayer as IFeatureSelection; IEnumIDs enumIDs = featureSelection.SelectionSet.IDs; int fieldIndex = _utilities.FindField(featureClass, cboField.Text); enumIDs.Reset(); _editor.StartOperation(); int intOID = enumIDs.Next(); while (intOID != -1) { IFeature feature = featureClass.GetFeature(intOID); if (feature != null) { feature.set_Value(fieldIndex, System.DBNull.Value); feature.Store(); } intOID = enumIDs.Next(); } _activeView.Refresh(); _editor.StopOperation("Update Class Type"); } #pragma warning disable CS0168 // Variable is declared but never used catch (Exception ex) #pragma warning restore CS0168 // Variable is declared but never used { MessageBox.Show("Shapefiles Don't Accept Null"); } } }
//获得选择的图层的范围 public IGeometry GetFeaLayerGeometry(IFeatureSelection pFeatureSel, IFeatureLayer pMapLayer) { IEnumIDs pEnumIDs = pFeatureSel.SelectionSet.IDs; int id = pEnumIDs.Next(); IGeometry pGeo = null; while (id != -1) { IFeature pFeat = pMapLayer.FeatureClass.GetFeature(id); if (pGeo == null) { pGeo = pFeat.Shape; } else { ITopologicalOperator pTop = pGeo as ITopologicalOperator; pGeo = pTop.Union(pFeat.Shape); } id = pEnumIDs.Next(); } return(pGeo); }
public override void OnClick() { IFeatureSelection targetLayer = Editor.UniqueInstance.TargetLayer as IFeatureSelection; IEnumIDs iDs = targetLayer.SelectionSet.IDs; iDs.Reset(); int iD = iDs.Next(); if (iD != -1) { IFeature pFeature = Editor.UniqueInstance.TargetLayer.FeatureClass.GetFeature(iD); this.ExplodeFeature(pFeature); } }
//»ñµÃÑ¡ÔñµÄͼ²ãµÄ·¶Î§ private Dictionary <string, IGeometry> GetFeaGeometry(IFeatureSelection pFeatureSel, IFeatureLayer pMapLayer, string fieldName, out Exception eError) { eError = null; Dictionary <string, IGeometry> feaDic = new Dictionary <string, IGeometry>(); IEnumIDs pEnumIDs = pFeatureSel.SelectionSet.IDs; int id = pEnumIDs.Next(); //IGeometry pGeo = null; //int rangNOIndex = pMapLayer.FeatureClass.Fields.FindField("RANGE_NO"); //·¶Î§ºÅË÷Òý int rangeNameIndex = pMapLayer.FeatureClass.Fields.FindField(fieldName); //·¶Î§Ãû³ÆË÷Òý if (rangeNameIndex == -1) //||rangNOIndex==-1 { eError = new Exception("·¶Î§ºÅ»ò·¶Î§Ãû³Æ×ֶβ»´æÔÚ£¡"); return(null); } while (id != -1) { IFeature pFeat = pMapLayer.FeatureClass.GetFeature(id); //string rangeNO = pFeat.get_Value(rangNOIndex).ToString(); //·¶Î§ºÅ string rangeName = pFeat.get_Value(rangeNameIndex).ToString();//·¶Î§Ãû³Æ if (!feaDic.ContainsKey(rangeName)) { feaDic.Add(rangeName, pFeat.Shape); } //if (pGeo == null) //{ // pGeo = pFeat.Shape; //} //else //{ // ITopologicalOperator pTop = pGeo as ITopologicalOperator; // pGeo = pTop.Union(pFeat.Shape); //} id = pEnumIDs.Next(); } return(feaDic); }