日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ArcGIS Engine开发之旅08--和查询相关的对象和接口

發布時間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ArcGIS Engine开发之旅08--和查询相关的对象和接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ArcGIS Engine開發之旅08--和查詢相關的對象和接口 原文:ArcGIS Engine開發之旅08--和查詢相關的對象和接口

查詢在GIS領域應該是一個很頻繁的操作,在GIS中除了具有屬性查詢(和其他關系型數據庫的查詢類似),還提供了空間查詢。在介紹查詢的時候,讓我們先了解下面的對象。

1.Table 對象
Table 是不含有空間信息的一張二維表,它主要實現了 ITable 接口。在這張二維表中,每一行稱之為 Row(IRow),ITable 接口 定義了對這張二維表行的插入,更新,查詢,以及刪除等操作。 獨立表(standalone table):就是一個單獨的不含空間信息的表也就是只能在 ArcMap 中 Table of Contents 的 Source 選項卡中看到的。
2.對象類
對象類是在 Table 的基礎上擴展起來的,因此在外觀上來看,它也是一個二維表,也是用來存儲非空間數據,它與 Table 的區別在于它的一行是一個 Object(對象),盡管在形式上也是一條記錄,但它是具有屬性和行為的一個對象,而非簡單的記錄了。
3.FeatureClass 對象
要素類是存儲在工作空間中的一種數據組織方式,要素類是在對象類的基礎上的進一步擴展,包含了現實世界中的空間實體。要素類由要素組成(Feature),要素對應要素類中的一行,要素相當于空間對象(Geometry ) +相應的屬性信息。IFeatureClass 定義了對要素的查詢,更新,刪除等操作。關于 ROW,Table,對象類,Feature,要素類,我們可以從下面的圖上得到啟示:

FeatureClass 對 象 實 現 了 IFeatureClass 接 口 , IFeatureClass 對 查 詢 定 義 了 兩 個 方 法IFeatureClass.Search 和 IFeatureClass.Select。 Search 方法需要傳入兩個參數,一個是過濾器;另外一個是布爾值,用于說明放回的要素游標是否被回收,一般的,如果僅僅是為了讀取數據,那么這個參數應該是 true,如果要對選擇出來的要素更新,那么這個參數應該設置為 false。那么這兩個參數到底有什么意義,我們從下面的代碼中看一下。?

3.1?false 和 true 參數的差別?

我們定義一個 Search 函數,通過傳 false 和 true 來對這兩個參數進行說明,代碼如下:?

void Search(IFeatureClass _pFeatureClass,bool _Bool) { IFeature pFt1, pFt2; IFeatureCursor pFtCursor; if (_Bool == false) { pFtCursor = _pFeatureClass.Search(null, _Bool); pFt1 = pFtCursor.NextFeature(); while (pFt1 != null) { pFt2 = pFtCursor.NextFeature(); if (pFt1 == pFt2) { MessageBox.Show("Recycling 參數是 false"); } pFt1 = pFtCursor.NextFeature(); } } else { pFtCursor = _pFeatureClass.Search(null, _Bool); pFt1 = pFtCursor.NextFeature(); while (pFt1 != null) { pFt2 = pFtCursor.NextFeature(); if (pFt1 == pFt2) { MessageBox.Show("Recycling 參數是true"); } pFt1 = pFtCursor.NextFeature(); } } } 當 recycling 為 true 的時候,我們會看到程序執行到 MessageBox.Show("Recycling 參數是 true"),如 下圖:

3.2?Search和 Select 方法的比較?

Search 返回游標,Select 返回選擇集 游標:必須遍歷游標才能得到所有的結果,不必太關注內存 選擇集: 查詢后既可得到,但是通常只保留 OID 字段,數據量大的時候要考慮內存壓力 。

3.3?Cursor 和 FeatureCursor對象?

Cursor 中文‘游標“,它本質上是一個指向數據的指針,自身并不包含數據。游標有三類,查詢游標,插入游標和更新游標,每一中游標都是有其相應的方法得到,如查詢游標是由 ITable.Search 方法得到。游標是 GIS 中使用頻率很高的,凡是和數據的查詢,更新,刪除等都跟他有關。ICursor 定義了對游標的操作。當我們通過 ITable.Search 對數據進行查詢,要獲取具體 Row 的信息的時候,要通過 ICursor.NextRow方法向前遍歷,游標是不能后退的。游標是和 Table 相對應的。IFeatureCursor 繼承了 ICursor,IFeatureCursor 是和要素類相對應。

3.4?QueryFilter 與 SpatialFilter對象?

在 ArcGIS Engine 中進行查詢或者選擇,都需要傳給一個查找條件,或者過濾條件,這個條件就相當于一般的 SQL 語句中的 Where 語句,如 Select * from 用戶 where 性別=’女’;我們知道 GIS 不僅僅有屬性查詢,還有一般關系型數據庫不具有的空間查詢。而 QueryFilter 對象和 SpatialFilter 對象分別對應了ArcGIS Engine 中的屬性查詢和空間查詢。 IQueryFilter 被兩個類實現 QueryFilterClass 和 SpatialFilterClass,前者是針對屬性查詢的,后者是針對空間查詢的。 在介紹下這些對象后,我們現在來做一個高亮顯示的查詢操作。

?

3.5 IFeatureSelection接口?

IFeatureSelection 接口負責管理一個圖層中的要素選擇集的方法和屬性。 IFeatureSelection 接口的 Add方法可以把本圖層中的一個要素添加到圖層的選擇集中;SelectFeatures 方法則利用過濾器對象將符合條件的要素放入到圖層的選擇集中。使用IFeatureSelection接口可以實現要素的高亮顯示。在ArcGIS Engine中有很多類實現了這個接口,如下圖:?

3.5.1?使用 IFeatureSelection接口高亮顯示?

在介紹 IMap 接口那一節,我們用 IMap 的 IMap.SelectFeature 方法實現了對查詢的要素高亮顯示,現在我們用 IFeatureSelection 接口實現查詢高亮顯示?

?

IMap pMap = axMapControl1.Map; IFeatureLayer pFeaturelayer = GetLayer(pMap, "Roads") as IFeatureLayer; IFeatureSelection pFeatureSelection = pFeaturelayer as IFeatureSelection; IQueryFilter pQuery = new QueryFilterClass(); pQuery.WhereClause = "TYPE=" +"'paved'"; pFeatureSelection.SelectFeatures(pQuery,esriSelectionResultEnum.esriSelectionResultNew,false ); axMapControl1.ActiveView.Refresh();

?

其中 GetLayer 函數是我們寫的一個根據圖層的名稱獲取圖層的方法,代碼如下圖:?

private ILayer GetLayer(IMap pMap, string LayerName) { IEnumLayer pEnunLayer; pEnunLayer = pMap.get_Layers(null, false); pEnunLayer.Reset(); ILayer pRetureLayer; pRetureLayer = pEnunLayer.Next(); while (pRetureLayer != null) { if (pRetureLayer.Name == LayerName) { break; } pRetureLayer = pEnunLayer.Next(); } return pRetureLayer; }

?

posted on 2016-08-18 17:17 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/lonelyxmas/p/5784686.html

總結

以上是生活随笔為你收集整理的ArcGIS Engine开发之旅08--和查询相关的对象和接口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色情毛片| 性――交――性――乱 | 精品一区二区中文字幕 | 韩国精品在线观看 | 91激情视频在线观看 | 四虎免费看黄 | 久久综合桃花网 | 精品免费在线 | 久久久www成人免费精品 | 国产一区二区三区四区hd | 国外成人在线视频 | 国产情侣一区 | 豆国产97在线 | 亚洲 | 久久久看 | 国产精品中文久久久久久 | 欧美日本高清 | 韩国三级bd高清中字2021 | 天堂va在线| 成年人激情网 | 亚洲97在线 | 丁香婷婷一区二区三区 | 亚洲精品字幕在线 | 黑人与日本少妇 | 国产成人a人亚洲精品无码 在线aa | 日本一区二区三区在线免费观看 | 午夜精品一区二区三区三上悠亚 | 国产又爽又猛又粗的视频a片 | av国产一区二区 | 中文字幕被公侵犯的漂亮人妻 | 日日嗨av一区二区三区四区 | 久久亚洲av无码精品色午夜麻豆 | 亚洲精品一级二级 | 色图综合| 国产欧美一区二区视频 | 91精品视频国产 | 一级淫片在线观看 | 双性人妖互交localhost | 国产精品久久久久久久久免费软件 | 一区二区三区日韩电影 | 天堂在线国产 | 婷婷射| www在线观看免费视频 | 久久无毛 | 成人禁污污啪啪入口 | 强行挺进皇后紧窄湿润小说 | 伊人网大香 | 春色影视 | 亚洲蜜桃av | 亚洲综合五月天婷婷丁香 | 毛片动漫| 人人插人人 | 中文字幕日韩精品在线 | 久久久蜜桃一区二区人 | 天天插插| www.色就是色 | 免费福利视频在线观看 | 91久久爽久久爽爽久久片 | 国内精品嫩模av私拍在线观看 | 午夜精| 18xxxx日本| 琪琪五月天 | 爱情岛论坛亚洲品质自拍视频 | 花样视频污| 欧美混交群体交 | 91久久人澡人人添人人爽欧美 | 稀缺小u女呦精品呦 | 人人狠狠综合久久亚洲 | 婷婷亚洲五月色综合 | 日韩高清一级 | 高清毛片aaaaaaaaa片 | 开心激情综合 | 国产一区二区观看 | 久久久久久久久久久久久女过产乱 | www.天堂av | 久久精品aⅴ无码中文字字幕重口 | 国产性―交一乱―色―情人 | 国产精选中文字幕 | 91porn在线| 欧美色图激情小说 | 草久免费视频 | 四级黄色片 | 致命弯道8在线观看免费高清完整 | 深夜福利免费在线观看 | 欧美一区二区免费视频 | 在线观看你懂的网址 | 国产成人无码性教育视频 | 这里只有精品在线观看 | 99久久99九九99九九九 | 欧美日日骚 | 日韩久久久久久久久久久 | 日韩欧av | 精品国产区一区二 | 欧美浓毛大泬视频 | 欧美久草 | 精品欧美一区二区久久久 | 波多野结衣电车痴汉 | 久久免费视频2 | 日韩毛片网站 | 经典三级av在线 |