999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C#編程的按位置及屬性值自動合并圖斑方法探究

2021-11-28 14:57:37徐劍松楊文總李果明
綠色科技 2021年5期
關鍵詞:方法

徐劍松,楊文總,李果明

(1.廣西壯族自治區林業勘測設計院,廣西 南寧 530011;2.廣西裕博林業勘測規劃設計有限公司,廣西 南寧 530011;3.廣西蒙山縣林業局,廣西 梧州 546700)

1 林業數據處理中合并圖斑的應用場景

1.1 林權不動產調查

針對位置彼此相鄰,且享有相同屬性值的圖斑。從幾何上看,他們享有共同邊,享有相同的屬性。按照林權不動產調查的有關技術規程,幾個相鄰的不動產單位,并且屬于同一林權權利人,應劃為同一宗地[1]。這就要求將類圖斑按照此規則進行合并。以往的林權調查,通常以小班作為調查單元,記載各小班的林權狀況,小班就相當于不動產調查中的不動產單元。現有的林權數據大都為2009年林權制度改革的成果,林權證要逐步銜接到不動產證,就要將不動產單元歸整到宗地[2]。

1.2 森林資源管理“一張圖”

在繪制森林資源管理“一張圖”小班后,會產生大量的碎斑(小面積圖斑),需要對這些碎斑進行合并操作[3]。雖然可以使用ArcGIS軟件中的消除工具進行合并,但這個工具只能進行有限的條件控制,往往會將一些本應保留的圖斑也合并了。若要精準合并圖斑,必須將此工具進行功能拓展,而運用C#語言進行功能拓展是解決這一問難題的有效方案。

2 具體思路

2.1 找出具有鄰接關系的圖斑

根據圖斑的空間位置信息判斷圖斑的位置關系,通過循環語句(搜索游標)遍歷矢量數據的所有圖斑,再利用ArcGIS Engine提供的判斷圖斑之間位置關系的接口--IRelationalOperator,該接口支持判斷的空間關系類型包括Contains(包含)、Crosses(相交)、Equals(相等)、Overlaps(重疊)、Touches(相接)等[4],采用該接口的Touch方法,輸入比對要素的幾何信息(IFeature.Shape)作為參數,可判斷兩個圖斑是否具有相鄰位置。

2.2 判斷鄰接圖斑是否符合合并條件

識別出當前圖斑的所有相鄰圖斑后,遍歷讀取該圖斑屬性表相應字段的值,通過比較運算符確定該鄰接圖斑是否符合合并條件。使用流程控制語句中的分支語句,使符合合并的條件圖斑進入下一處理流程。當符合合并條件的相鄰圖斑為2個及以上時,推薦的做法是創建一個要素列表保存所有符合合并條件的相鄰圖斑,后續的合并、刪除要素都可以通過操作列表輕松實現。

2.3 合并前處理

經過以上兩步的位置甄別和屬性值比對,已經獲得符合合并條件的圖斑,合并操作需要包含在編輯業務流中,因此在執行操作前,要先啟動編輯工作流程,需要用到IEngineEditor接口,該接口用于開啟編輯對象的方法為StarEditing,需要傳入IMap和IWorkspace2個參數。

2.4 合并圖斑

ArcGIS Engine合并操作,相當于用的ArcMap圖形操作界面的編輯器下的合并(Merge)功能,但又有所不同。合并圖斑用到的是ITopologicalOperator2接口,應在合并前要預先創建一個空要素來保存結果圖斑,創建要素使用IFeatureClass接口的CreateFeature方法。調用ITopologicalOperator2接口的Union方法,將兩個同維度的幾何對象合并為單個幾何對象[5],其參數為被合并圖斑的幾何信息,再使用賦值語句將結果賦值給預先創建的空要素。

2.5 刪除被合并的圖斑

由于圖斑合并使用的Union方法的功能是產生新的圖斑,再利用參與合并的圖斑邊界生成的新圖斑。該過程本質上是新增了一個圖斑,對原來的圖斑未做處理。要達到ArcMap圖形操作界面的合并功能效果,還需要在合并圖斑后,把參與合并的圖斑刪除,否則要素類會存在重疊。刪除要素使用IFeature接口的Delete方法。

2.6 保存編輯

在編輯操作中,所有的編輯操作在沒有保存之前都被保存在內存中,只有執行保存操作,才能把所有的編輯結果保存到文件中[6]。停止編輯、保存編輯內容的方法均在IWorkspaceEdit接口下,停止編輯方法為StopEditOperation;保存編輯的方法為StopEditing,該方法需要傳入一個參數,“true”表示保存,“false”表示不保存。

3 程序編寫

以Microsoft的可視化開發環境Visual Studio作為開發工具,采用面向對象的軟件開發語言C#創建一個項目,并在擴展項引入ArcObjects。

關鍵代碼:

pWorkspaceEdit.StartEditing(true);

pWorkspaceEdit.StartEditOperation();

for (inti = 0; i

{

IFeatureCursorpFeatureCursor = pFeatureClass.Search(null, false);

IFeaturepFeature = pFeatureCursor.NextFeature();

IGeometryCollectiongeometryBag = newGeometryBagClass();

ITopologicalOperator2 topoOperator = null;

IGeometrygeometryMax = null;

IGeometrygeometryOther = null;

if (LstOther.Count> 0)

{

geometryMax = maxFeature.Shape;

IGeometrygeometryNext = null;

IFeatureunionedFeature = pFeatureClass.CreateFeature();

IGeometryunionedGeometry=null;

for (int j = 0; j

{

geometryNext = LstOther[j].Shape;

if (unionedGeometry != null)

{topoOperator = (ITopologicalOperator2)unionedGeometry;

}

unionedGeometry = topoOperator.Union(geometryNext);

pWorkspaceEdit.StopEditOperation();

pWorkspaceEdit.StopEditing(true);

4 結論與建議

借助C#語言編程及ArcGIS Engine提供的組件,可以讓圖斑之間的合并操作變得簡單、智能,并可廣泛應用于林業數據處理工作中。對需要合并的600個圖斑進行測試,使用本文所述方法,耗時3 min,正確率100%;而采用傳統的手動合并方法操作,則需要2 h,且圖斑數量增多后,容易出現合并錯誤。

合并圖斑有許多需要注意的細節,建議合并前預先保存被合并圖斑的屬性值,完成合并后再對結果圖斑賦值,使結果圖斑屬性與合并前某一圖斑屬性一致。若不設置屬性值,結果圖斑將只保留圖形,屬性值為空。另外,在合并后要加上保存的操作,才能成功合并圖斑。設置完屬性值后,也要使用store方法保存。

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 国产99精品视频| 亚洲大尺码专区影院| 久久精品这里只有国产中文精品| 国产午夜无码片在线观看网站| 精品国产香蕉在线播出| 美女裸体18禁网站| 欧美日韩亚洲综合在线观看| 国产成人精品优优av| 五月天香蕉视频国产亚| 国产99久久亚洲综合精品西瓜tv| 免费一级全黄少妇性色生活片| 99精品免费在线| 中文字幕中文字字幕码一二区| 国产91蝌蚪窝| 996免费视频国产在线播放| 国产成人啪视频一区二区三区 | 久久精品电影| 一区二区日韩国产精久久| 制服丝袜一区二区三区在线| 亚洲精品在线影院| 亚洲成综合人影院在院播放| 久一在线视频| 波多野结衣一区二区三区AV| 国产欧美视频在线观看| 色老头综合网| 国产丝袜无码精品| 欧美亚洲国产视频| 114级毛片免费观看| 午夜不卡视频| a在线亚洲男人的天堂试看| 欧美亚洲日韩不卡在线在线观看| 色亚洲成人| 毛片免费在线视频| 久久青青草原亚洲av无码| 亚洲天堂久久| 午夜老司机永久免费看片| 国产h视频在线观看视频| 欧美日韩v| 亚洲AV无码不卡无码| 欧美伦理一区| 老色鬼久久亚洲AV综合| 国产精品观看视频免费完整版| 高h视频在线| 亚洲中文字幕无码爆乳| 91人妻在线视频| 成人在线观看不卡| 一本一道波多野结衣av黑人在线| 久久久久久久97| 日韩免费中文字幕| 91国内视频在线观看| 欧美性色综合网| 久爱午夜精品免费视频| 成人免费黄色小视频| 97国产成人无码精品久久久| 中国一级毛片免费观看| 亚洲香蕉久久| 午夜福利免费视频| 精品国产一二三区| 国产成人成人一区二区| 免费一级无码在线网站| 亚洲不卡av中文在线| 操美女免费网站| 国产精品毛片一区| 久久国产精品77777| 伊人欧美在线| 国产美女一级毛片| 真人高潮娇喘嗯啊在线观看| 中文字幕波多野不卡一区| 99热最新在线| 国产系列在线| 亚洲精品国产综合99久久夜夜嗨| 国产精品亚洲专区一区| 欧洲高清无码在线| 亚洲成人在线免费| 99ri国产在线| 国产va欧美va在线观看| 真人免费一级毛片一区二区| 亚洲精品少妇熟女| 久久成人免费| 欧美亚洲中文精品三区| 91午夜福利在线观看| 亚洲性日韩精品一区二区|