問題:對兩個進行合併的過程中(比如面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 事件中處理實現...