




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.DataSourcesGDB;using ESRI.ArcGIS.Geodatabase;namespace PolygonCoveredPolygonpublic class PolygonCoveredPolygon/*功能函數(shù):面重疊檢查/*參 數(shù):源圖層、目標(biāo)圖層/*返回值:檢查結(jié)果(源圖層名、源要素
2、OID、目標(biāo)圖層名、目標(biāo)要素的OID)public DataTable DataCheck(IFeatureClass orgFeaCls, IFeatureClass desFeaCls, outException outError)DataTable dt = null;outError = null;if (orgFeaCls.ShapeType != esriGeometryType.esriGeometryPolygon) return null; /源圖層不是面if (desFeaCls.ShapeType != esriGeometryType.esriGeometryPolyg
3、on) return null;/目標(biāo)圖層不是面dt = new DataTable();dt.Columns.Add(源圖層名);dt.Columns.Add(源要素 OID);dt.Columns.Add(目標(biāo)圖層);dt.Columns.Add(目標(biāo)要素 OID);查找源要素IFeatureCursor pOrgCursor = orgFeaCls.Search(null, false);IFeature pOrgFea = pOrgCursor.NextFeature();/源要素 /查找目標(biāo)要素IFeatureCursor pDesCursor = desFeaCls.Search(
4、null, false);IFeature pDesFea = pDesCursor.NextFeature(); /目標(biāo)要素 List OID = new List(); /要保存目標(biāo)的 OID while (pDesFea != null) if(!OID.Contains(pDesFea.OID)OID.Add(pDesFea.OID);pDesFea = pDesCursor.NextFeature();if(OID=null|OID.Count=0) return null;while (pOrgFea!= null) 源要素不為空IGeometry pOrgFeaGeo = pOr
5、gFea.Shape; /源要素的幾何形狀for (int i = 0; i OID.Count; i+)IFeature mDesFea=desFeaCls.GetFeature(OIDi);if(mDesFea=null) continue;IRelationalOperator pRelation = mDesFea.Shape as IRelationalOperator;if (pRelation.Overlaps(pOrgFeaGeo) /判斷源要素和目標(biāo)要素 是否重疊如果面重疊DataRow dr = dt.NewRow();dr源圖層名=pOrgFea.Class.AliasN
6、ame;dr源要素 OID = pOrgFea.OID;dr目標(biāo)圖層=mDesFea.Class.AliasName;dr目標(biāo)要素 OID = mDesFea.OID;dt.Rows.Add(dr);pOrgFea = pOrgCursor.NextFeature();return dt;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.DataSource
7、sGDB;using ESRI.ArcGIS.Geodatabase;namespace LineCoveredCheckpublic class LineCoveredCheckCls/*功能函數(shù):重復(fù)性檢查/*參 數(shù):源圖層、目標(biāo)圖層/*返回 值:檢查結(jié)果(源圖層名、源要素OID、目標(biāo)圖層名、目標(biāo)要素OID) public DataTable DataCheck(IFeatureClass orgFeaCls, IFeatureClass desFeaCls, outException outError)DataTable dt = null;outError = null;dt = ne
8、w DataTable();dt.Columns.Add(源圖層名);dt.Columns.Add(源要素 OID);dt.Columns.Add(目標(biāo)圖層名);dt.Columns.Add(目標(biāo)要素 OID);查找源要素IFeatureCursor pOrgCursor = orgFeaCls.Search(null, false);IFeature pOrgFea = pOrgCursor.NextFeature(); /源要素/查找目標(biāo)要素IFeatureCursor pDesCursor = desFeaCls.Search(null, false);IFeature pDesFea
9、= pDesCursor.NextFeature(); /源要素List OID = new List(); /保存目標(biāo)要素的 OID while (pDesFea != null) if (!OID.Contains(pDesFea.OID) OID.Add(pDesFea.OID);pDesFea = pDesCursor.NextFeature();if (OID = null | OID.Count = 0) return null;while (pOrgFea != null) 源要素不為空IGeometry pOrgFeaGeo = pOrgFea.Shape; /源要素的幾何形狀
10、for (int i = 0; i OID.Count; i+) /循環(huán)目標(biāo)要素IFeature mDesFea = desFeaCls.GetFeature(OIDi);/ 獲取目標(biāo)要素if (mDesFea = null) continue;IRelationalOperator pRelation = mDesFea.Shape as IRelationalOperator; /幾何關(guān)系if (pRelation.Equals(pOrgFeaGeo) /判斷空間位置是否重合if (pOrgFea.OID = OIDi) continue;/如 果是同一個要素就跳出if (BeSamePr
11、operties1(pOrgFea, mDesFea)DataRow dr = dt.NewRow();dr源圖層名=pOrgFea.Class.AliasName; 顯示錯誤信息dr源要素 OID = pOrgFea.OID;dr目標(biāo)圖層名=mDesFea.Class.AliasName;dr目標(biāo)要素 OID = mDesFea.OID;dt.Rows.Add(dr);pOrgFea = pOrgCursor.NextFeature();return dt;private bool BeSameProperties1(IFeature pOrgFea, IFeature mDesFea)bo
12、ol b = true;string fieldNames = ; /字段字符串返回值for (int m = 0; m mDesFea.Fields.FieldCount; m+)IField pField = mDesFea.Fields.get_Field(m); / 字段if (pField = null) continue;if (pField.Type = esriFieldType.esriFieldTypeOID) continue;/OID 字段排除if (pField.Type = esriFieldType.esriFieldTypeGeometry) continue;
13、/Geometry 排除if (pField.Name.ToUpper().StartsWith(SHAPE) continue;string pfieldName = pField.Name;fieldNames += pfieldName + ,;fieldNames = fieldNames.Substring(0, fieldNames.Length - 1);/所有字段的字符 串string fieldsArr = fieldNames.Split(new char , );/ 需要檢查的字段數(shù)組int orgindex = -1;int desindex = -1;for (int
14、 j = 0; j fieldsArr.Length; j+)orgindex = pOrgFea.Fields.FindField(fieldsArrj);desindex = mDesFea.Fields.FindField(fieldsArrj);if(pOrgFea.get_Value(orgindex).ToString()!=mDesFea.get_Value(desindex).ToString()return false;/屬性不一致;return b;public DataTable DataCheck1(IFeatureClass pFeaCls, out Exceptio
15、n pError)DataTable dt = null;pError = null;dt = new DataTable();dt.Columns.Add(源圖層名);dt.Columns.Add(源要素 OID);dt.Columns.Add(目標(biāo)圖層名);dt.Columns.Add(目標(biāo)要素 OID);IFeatureCursor pCursor = pFeaCls.Search(null, false);IFeature pFea = pCursor.NextFeature();List LstFea = new List();while (pFea != null)if (!Lst
16、Fea.Contains(pFea)LstFea.Add(pFea);pFea = pCursor.NextFeature();foreach (IFeature pOrgFea in LstFea)foreach (IFeature pDesFea in LstFea)if (pOrgFea.OID = pDesFea.OID) continue;/判斷空間位置是否重合,若重合,則進(jìn)行線面的檢查IGeometry pGeo=pOrgFea.Shape;IRelationalOperator pRelation = pDesFea.Shape as IRelationalOperator; /
17、幾何關(guān)系if (pRelation.Equals(pGeo)檢查屬性是否一致if (BeSameProperties(pOrgFea, pDesFea)DataRow dr = dt.NewRow();dr源圖層名=pOrgFea.Class.AliasName; 顯示錯誤信息dr源要素 OID = pOrgFea.OID;dr目標(biāo)圖層名=pDesFea.Class.AliasName;dr目標(biāo)要素 OID = pDesFea.OID;dt.Rows.Add(dr);return dt;private bool BeSameProperties(IFeature pOrgFea, IFeature pDesFea)bool beSucced = true;for (int i = 0; i pOrgFea.Fields.FieldCount; i+)if (pOrgFea.Fields.get_Field(i).Type = esriFieldType.esriFieldTypeOID)continue;if (pOrgFea.Fields.get_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026屆徐州市重點(diǎn)中學(xué)中考語文五模試卷含解析
- 家庭急救培訓(xùn)核心技能與實施指南
- 急救常識及急救技能培訓(xùn)
- 鄉(xiāng)村民族工作匯報
- 年產(chǎn)xx萬臺掃雪機(jī)項目可研報告
- 2025版彩鋼瓦房門窗更換及維護(hù)保養(yǎng)服務(wù)合同
- 2025年度綠色建筑施工現(xiàn)場職業(yè)健康安全綜合管理服務(wù)協(xié)議書
- 2025版工地水電設(shè)施維護(hù)與應(yīng)急響應(yīng)服務(wù)合同
- 2025版離婚協(xié)議中財產(chǎn)分割及子女撫養(yǎng)及贍養(yǎng)費(fèi)支付及共同債務(wù)處理及財產(chǎn)增值參考模板
- 二零二五年度電纜溝施工及施工環(huán)境保護(hù)合同
- 《幼兒游戲與指導(dǎo)》 課程標(biāo)準(zhǔn)
- TMK工作總結(jié)模板
- 提高銷售信心與自信心的培訓(xùn)
- 收納整理培訓(xùn)課件
- 輸液港及護(hù)理課件
- 食品營養(yǎng)與食品安全(食品安全)
- 干細(xì)胞臨床研究質(zhì)量管理手冊
- 公立醫(yī)院 財務(wù)分析報告
- 建設(shè)用地報批服務(wù)投標(biāo)方案(技術(shù)方案)
- 發(fā)展?jié)h語初級讀寫第一課知識介紹
- 《項目采購與合同管理》 課件 徐水太 第4-6章 工程項目采購、項目采購控制、PPP項目采購與合同管理
評論
0/150
提交評論