FeatureLayer,FeatureDataset,FeatureClass,Feature几个概念一点点总结

对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的要素的属性值。通过循环就可以获得所有属性值。

自己总结的,如有不对的地方,请各位大虾多多指教.共同进步:)

1、FeaturLayer是加载在地图文档中的数据层,只是要素类的表现形式;FeatureClass是一组空间实体的集合,在数据表中存储了统一的属性和行为,每一个FeatureClass都有一个Geometry类型,如shp文件;

2、IFeatureLayer继承自ILayer,IFeatureClass继承自IClass;

3、FeatureLayer可以创建自己的对象,而FeatureClass不行:

IFeatureClass=IFeatureLayer.FeatureClass 或者

IFeatureClass=IFeatureWorkspace.openFeatureClass("xx")

posted on 2012-05-09 10:47  3S 天空  阅读(1873)  评论(0编辑  收藏  举报

导航