arcEngine开发之IMapILayerIFeatureLayer和IFeatureClass关系

Posted firepation

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arcEngine开发之IMapILayerIFeatureLayer和IFeatureClass关系相关的知识,希望对你有一定的参考价值。

刚开时学习 Engine 开发时,对于这几个接口之间的关系总是理不清,因此写下这篇文章做个总结。

是什么

在 engine 开发中,我觉得使用过程中应该将每个接口对应到 ArcMap 中的具体事物中,这才能对它们有深刻的认识,那么,这几个接口代表的事物是什么呢?

  • IMap
    这相对来说比较好理解,Map就是许多图层的集合,就像 ArcMap 中的 MXD文档一样,可以包括许多图层 Layer.
  • ILayer
    Layer 是图层对象,是数据的外壳,必须建立在数据的基础上才有意义。在 ArcMap 中,它可以表示任何图层,例如要素图层( IFeatureLayer ),栅格图层( IRasterLayer ),图形图层集合( ICompositeGraphicsLayer )
  • IFeatureLayer
    继承自ILayer,提供了访问基于矢量数据图层的属性和方法,图层的数据可以是Geodatabase、Shapefile或Coverage数据。如果使用FeatureLayer组件类,还可以通过IGeoFeatureLayer接口获得更多的属性和方法。提供了控制要素图层的属性和方法,例如标记属性( AnnotationProperties )、注记显示设置( DisplayAnnotation )
  • IFeatureClass
    获取和设置要素类属性的主要接口。如获取要素类的类型,得到满足某个查询条件的要素个数,或在要素类中创建一个新的功能。

关系

其中IMap是由多个ILayer构成的,而IFeatureLayer是ILayer的一个子类,IFeatureClass是IFeatureLayer的一个属性。

以上是关于arcEngine开发之IMapILayerIFeatureLayer和IFeatureClass关系的主要内容,如果未能解决你的问题,请参考以下文章

arcEngine开发之IMapControl接口

arcEngine开发之IMapILayerIFeatureLayer和IFeatureClass关系

arcEngine开发之根据点坐标创建Shp图层

ArcEngine二次开发API之Bug集(一 )

解决ArcEngine开发程序“假死”现象

ArcEngine尝试读取或写入受保护的内存