




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、ArcEngine方法之查詢(一)查詢是GIS不可或缺的功能,今天我寫一下我近期對查詢的理解。先說說屬性查詢;A查詢主要涉及接口:1. IQueryFilter通過設(shè)置這個接口的WhereClause屬性來作 為查詢條件,本屬性的語句為SQL的where后的條件語 句。2. IFeatureLayer矢量圖層,一般由I Layer進(jìn)行轉(zhuǎn)化。 該接口的Search方法進(jìn)行查詢,Search方法的參數(shù)有兩 個,前面的 是IQueryFilter對象,后面的是bool值,一 般設(shè)為false. 3. IFeature要素接口,用來接收查詢出來的要 素。4. IFeatureCursor游標(biāo)接口,通過
2、Search進(jìn)行查詢,可以講結(jié)果保存在這里,從而利用NextFeature方法,遍歷所有要素。B基本的思想獲取圖層,設(shè)置條件,進(jìn)行查詢,顯示要素 類。C如何獲取IFeatureLayer地圖的圖層的 索引從0開始,一般通過get_Layer方法或者Layer屬性 獲取ILayer ,然后將ILayer強制轉(zhuǎn)換為IFeatureLayero D舉例下面是一個整體的過程。首先定義一個方法:/ /查詢并高亮顯示III III為WhereClause賦值/圖 層, ILayer 對象 pub lie void QueryAndHight (string sql, ILayer pLayer) / 查詢
3、this. axMapControll. Map. ClearSelection() ;/ 清除地圖的選 擇 IFeatureLayer pFeatureLayer = pLayer asIFeatureLayer;/ 定義 矢量圖層 IQueryFilter pQueryFilter =newQueryFilter() ;/實例化一個查詢條件對象pQueryFilter. WhereClause = sql;/ 將查詢條件賦值IFeatureCursor pFeatureCursor =pFeatureLayer. Search(pQueryFi 11er, false) ;/ 進(jìn)行查詢IF
4、eature pFeature; pFeature =pFeatureCursor. NextFeature() ; ff此步是將游標(biāo)中的第一個交 給 pFeatureif (pFeature 二二 null)/ 判斷是否查到結(jié)果如果沒有查到報錯并結(jié)束MessageBox. Show(,沒有查詢到地物!','查詢提示', MessageBoxButtons. OK, MessageBoxIcon. Information); return;axMapControll. Map. SelectFeature(pLayer, pFeature);/ X等 查詢到的地物作為選
5、擇對象高亮顯示在地圖上axMapControll. CenterAt(pFeature. Shape asESRI. ArcGIS. Geometry. IPoint) ;/設(shè)置當(dāng)前查詢到的要素為 地 圖的中心axMapControll. MapScale =pLayer. MinimumScale;/將當(dāng)前地圖的比例尺設(shè)置為ILayer 的最小顯示比例尺axMapControll. ActiveView. RefreshO ;/ 刷新地圖,這樣才 能顯示出地物下面我們進(jìn)行方法的調(diào)用:Ilayer pLayer=axMa.pControl 1. Map. get_Layer (0) ;/ 第一
6、個圖層, 在 地 圖中第一個圖層是醫(yī)院QueryAndHight ('name二'市一醫(yī)院 '',pLayer); 調(diào)用函數(shù),在醫(yī)院的圖層上查詢name為市一 醫(yī)院的要素并高量顯示在地圖上。上面的例子有一個問題, 假 設(shè)我們只知道圖層的名字,而不知道索引為多少,這就比 較 復(fù)雜了。所以我們可以提前寫一個方法 通過名字獲得 ILayer 對象。 public ILayer GetLayerByName (string strLayerName)ILayer pLayer = null; for (int i =0; i if (strLayerName =axMa
7、pControll. get_Layer(i). Name) pLayer axMapControll. get_Layer(i);break; return這樣,我們就可以用以下的方法獲得ILayer 對象進(jìn)行查詢:ILayer pLayer=GetLayerByName ('醫(yī) 院);。上面我們只是進(jìn)行單要素的查詢與顯示,但是我 們有時候需要獲得多個查詢結(jié)果,這樣就需要用到 NextFeature方法進(jìn)行遍歷搜索顯示,我們在進(jìn)行高亮顯示 的時候也能獲取要素的屬性 可以將其保存起來。下面就是一個例子:一 strName=new List () ;/用來保存name屬性,這個可以換成l
8、istBox或者comoBox來接受要素的 name IFeatureLayerpFeatureLayer = mainfrm. GetLayerByName (?此處為圖層的名字 ')as IFeatureLayer; IQueryFilter pQueryFilter = newQueryFilter () pQueryFilter. WhereClause = 'name like 'txtName. Text +模糊查詢 IFeatureCursor pFeatureCursor = pFeatureLayer. Search(pQueryFliter, fal
9、se); IFeature pFeature; pFeature = pFeatureCursor. NextFeature () ;/ 獲取第一個要素 if(pFeature = null) /如果要素為空,則提 示并返回MessageBox. Show('沒有查詢到txtName. Text +,','查詢提示',MessageBoxButtons. OK,MessageBoxIcon. Information); return; while (pFeature != null) strName. Add (pFeature. get_Va.lue (pFeature.Fields. FindField(, name,). ToStringO) ;/ 將查詢出的要素 的name屬性加到strName中如果是listbox則可以用 listBoxl. items. add();來將 name 添加到 listbox 中。mainfrm. a
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 24741:2024 EN Information technology - Biometrics - Overview and application
- 【正版授權(quán)】 ISO 24322:2024 EN Timber structures - Methods of test for evaluation of long-term performance - Part 1: Wood-based products in bending
- 【正版授權(quán)】 ISO 5284:2025 EN Conveyor belts - List of equivalent terms
- 【正版授權(quán)】 ISO 22915-1:2024 EN Industrial trucks - Verification of stability - Part 1: General
- 2025年度高新技術(shù)產(chǎn)業(yè)園區(qū)運營承包經(jīng)營合同
- 生物技術(shù)課程導(dǎo)入計劃
- 各行各業(yè)主管的共性與差異計劃
- 校外美術(shù)實踐基地建設(shè)計劃
- 老年醫(yī)學(xué)科醫(yī)生工作計劃
- 2025年灌裝機(jī)系列設(shè)備合作協(xié)議書
- 《新時代大學(xué)生勞動教育》全套教學(xué)課件
- 2024簡易租房合同下載打印
- 公司與個人的技術(shù)服務(wù)合同書范本
- 數(shù)字出版概論 課件 第八章 數(shù)字出版產(chǎn)品開發(fā)與分析
- 高職建筑設(shè)計專業(yè)《建筑構(gòu)造與識圖》說課課件
- 碼頭工程施工組織設(shè)計
- TBSES 001-2024 建設(shè)項目環(huán)境影響后評價技術(shù)指南 污染影響類
- 北師大版數(shù)學(xué)三年級下冊《分橘子》說課稿及反思(共二篇)
- 新能源汽車:電動壓縮機(jī)技術(shù)簡介
- 2024年醫(yī)美項目立項申請報告范文
- 《管理學(xué)基礎(chǔ)(第2版)》高職全套教學(xué)課件
評論
0/150
提交評論