ArcGIS Engine开发-自定义图层类型

用ArcGIS Engine开发的一个特别就是面向接口编程,每组接口代表了对象在某个方面的特性,表现为一个方法、属性或事件。要定义自己的图层类型,实际上只需要实现ILayer接口就可以了。该接口的主要方法或属生包括:

public
IEnvelope AreaOfInterest {get;}
public void Draw (
    esriDrawPhase DrawPhase,
    IDisplay Display,
    ITrackCancel trackCancel
)
public
void SpatialReference {set;}
public
string get_TipText (
    
double x,
    
double y,
    
double Tolerance
);
等等,请直接查阅帮助。

但实现了该接口,图层只是能加入以地图中,并显示出来而已。如果你要自定义的图层类型是矢量要素的话,最好直接实现IFeatureLayer。由于IFeatureLayer从ILayer继承而来,所以也包含了上述方法或属性。同时还可以支持选择,查询等操作了。

实现了IFeatureLayer,还不能支持图层渲染功能。要想支持图层渲染,得实现IGeoFeatureLayer接口,该接口从IFeatureLayer继承而来,所以也包含IFeatureLayer所支持的所有方法属性。

如果要支持属性表功能的话,得实现ITable接口。

如果希望图层信息能保存到MXD文档中,得实现IPersistStream接口。

由此可见,在ArcGIS Engine中,要实现自定义图层类型,并不是一件不可能的事。虽然会比较烦琐,但思路却非常清晰。本人就通过这种思路设计了一种组合图层,可以同时包含点线面多种图形,但在TOCControl中只表现为一个图层。当然,这个工作要简单轻松一些,但还是富有乐趣的~


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值