1. 程式人生 > 實用技巧 >FeatureLayer,FeatureDataset,FeatureClass,Feature的區別與聯絡總結

FeatureLayer,FeatureDataset,FeatureClass,Feature的區別與聯絡總結

剛學AE,其中很多概念都模糊不清。經過一段時間的摸索總結,對FeatureLayer,FeatureDataset,FeatureClass,Feature幾個概念有了一點認識。拿出來分享一下,有錯誤的請多多指教,共同進步.

FeatureLayer:要素圖層,承載要素資料。幾個重要的介面如下:
IFeatureLayer介面,用於管理要素圖層的資料來源,即要素類(FeatureClass)。具體察看IFeatureLayer.DataSourceType條目。
IFeatureLayer::FeatureClass屬性可以返回要素圖層使用的要素類。
IFeatureLayer::search方法,返回一個ICursor物件,僅僅指向一個要素指標。

IFeatureSelection介面負責管理一個圖層中的要素的選擇集的方法和屬性。
IFeatureSelection:SelectFeatures使用一個過濾器把符合要求的要素放入圖層的選擇中(IEnumFeature)。
ILayerFields介面,可以直接獲得一個要素圖層的要素類欄位結構。

FeatureDataset: 先看官方解釋:A FeatureDataset is a container for feature classes that share the same spatial refrence.
要素資料集物件在GeoDatabase是一個簡單的要素類的容器,在這個容器內放置著相同空間參考的要素類

FeatureClass:(要素類)是用來儲存空間資料的物件類,是ObjectClass的擴充套件。在一個要素類中的所有的要素都使用同樣的欄位結構,要素類與表,物件類最大的區別是它有一個幾何欄位,即Shape欄位,用於儲存要素的幾何資訊,這樣使得使用者可以在地圖上看到一個要素的形狀和位置。在地圖上,要素類是離散物件,”小”物件(small objects)表示為點要素,”長”物件表示為線要素,”大”物件表示為多邊形要素.(不要老往Shapefile上面想),不包含Raster。

IFields介面,欄位集可以通過ITable::Fields獲取(IFeatureClass.Fields)IFields有2個屬性,其中一個是Field(index),通過傳入不同的欄位索引值可以返回某個欄位。兩個方法,一個是FindField,用欄位名作為欄位的索引。IField介面是欄位物件的主要介面,可以個從這個介面中得到欄位的主要屬性,如名稱、別名,欄位的值域,欄位的型別等。

Feature:是要素類中一條記錄,主要介面是IFeature,定義了要素物件特有的屬性。IFeature ::get_Value(i)可以獲得索引值為i的要素的屬性值。通過迴圈就可以獲得所有屬性值。

還是圖最清楚: