Arcengine合併面要素

2022-04-01 11:02:23 字數 1191 閱讀 9607

問題:對兩個進行合併的過程中(比如面a和麵b),發現無論怎麼合併最後的結果總是a要素的區域。

解決方法:

使用itopologicaloperator.union()方法對a、b倆個面要素進行合併,後來發現是沒有獲取union操作的結果 ,當時的錯誤**是這樣的:

itopologicaloperator2 uniontopo = geometryfirst as itopologicaloperator2;                       

igeometry secondfeageo = secondfea.shapecopy;

uniontopo.union(secondfeageo);

unionfea.shape =uniontopo as igeometry ;//這種獲取union操作的結果的方法是錯誤的

後來在網友幫助下改正**如下:

ifeature unionfea = areafeaclass.createfeature();

ifeature firstfea = areafeaclass.getfeature(unionfeagrouplist[i][0]);

ifeature secondfea = areafeaclass.getfeature(unionfeagrouplist[i][1]);

igeometry geometryfirst = firstfea.shapecopy;

itopologicaloperator2 uniontopo = geometryfirst as itopologicaloperator2;

igeometry secondfeageo = secondfea.shapecopy;

unionfea.shape = uniontopo.union(secondfeageo);//正確獲得結果的方式

unionfea.set_value(feastateindex, "0");

unionfea.store();

firstfea.delete();

secondfea.delete();

合併結果就正確了。也可以將合併好的結果賦給第乙個要素並儲存,然後刪除第二個要素,這樣便避免了建立新要素然後再刪除兩個要素的麻煩。

ArcEngine 面要素類轉點

雖然有方便的gp工具featureverticestopoint。然而其需要最高許可權,某些時候沒法使用,可以用下面的函式作為替代。csharp view plain copy 要素節點轉點 要轉換的要素類 要生成轉換後要素類的要素資料集 生成的點要素類 private ifeatureclass ...

複製要素類到新的要素類ArcEngine

前提 複製要素類之間欄位要保證一致 複製要素 源要素,即要複製的要素 目標要素 public void insertfeaturesusingcursor ifeatureclass sourcefeatureclass,ifeatureclass targetfeatureclass 如果是線或面...

ArcEngine資料編輯 選擇要素

原文arcengine資料編輯 選擇要素 要編輯要素,首先要選中要素,按shift鍵進行多選,按esc鍵清空選擇。個人了解的選擇高亮顯示有兩種方式,都是在public override void onmousedown int button,int shift,int x,int y 事件中處理實現...