宏观上看Arcobject SDK

1.为什么要从宏观上看API

很多介绍AO的教程要么直接介绍各个dll文件都是做什么用的,或者直接从开始介绍AxMapControl和AxPageLayoutControl开始。这种方式如同再黑暗中漫无目的摸索,摸索到那,就是哪。不知道左右是什么,也不知道前面还有多远到达终点。我们的眼睛不能被一片树叶挡住,看不到事物的全貌。

如果从宏观上了解了API之后,当你走到一个地方,知道身在何处,知道前后左右大概都是什么。这样不但不会迷失方向,随着了解的越多,会越来越清晰。

2.API的五大部分

根据查到的资料,ArcGIS10.0有1053个枚举、93个结构体、5555个接口以及4081个类,合计10982。那么到ArcGIS10.8,这个数量肯定是更多了。在这些繁杂的API中,我总结出了五大部分。五大部分的关系图如下。

 

 

 

2.1.AxControl-Tool部分

AxControl-Tool部分比较独立,主要是控制几个AxControl和ITool、ICommand接口之间的交互。我们理解API这部分的设计后,会对我们的系统架构设计能力有很大的提高。AO API定义的工具交互这块解耦做的非常好,各工具之间相互独立,耦合性很低,是我们学习借鉴的非常好的例子。只要能把AxControl和ITool、ICommand接口之间的交互关系搞清楚,这部分就算掌握了。

2.2.Map-Layer部分

Map-Layers部分是系统核心的部分,基本上我们开发写的代码,都是围绕这部分来展开的,涉及到重要概念包括地图、工作空间、图层、矢量数据集、字段、要素、栅格数据、查询、标注、渲染等。

2.3.PageLayout-Elment部分

PageLayout-Elment部分是相对独立的模块,一般我们在出图的时候会使用到该部分。

Map和PageLayout均实现了IActiveView,都可以添加Elment。但就重要性而言,Elment对于PageLayout要重要的多。PageLayout上基本上所有添加的内容都是实现了IElement接口的。例如Layout上面添加的MapFrame、指北针、比例尺、图例、文本、图片、图框等都是以Element的方式添加到PageLayout上。

2.4.GeoProcess-ArcToolbox部分

GeoProcess-ArcToolbox是一个相对独立但又非常重要的模块。例如我们在做矢量数据裁剪、空间连接、生成水系流域、坡度分析、栅格运算等,都是调用的ArcToolbox里面的工具。

这个主要是做数据处理的时候使用。其实我们做AO开发,很多数据处理等都是调用的ArcToolbox里面的工具。能使用好这些工具,开发系统将事半功倍。

2.5.Geometry-SpatialReference部分

Geometry-SpatialReference部分是比较基础重要的部分,AO API的各个部分都会用到这些内容,比较重要的概念包括几何体、空间参考、投影转换、样式库等。

对于非GIS专业从事GIS开发的人员,空间参考以及空间参考之间的转换是一个非常难以理解的概念,我们可以通过ArcMap操作以及API的接口,把这块了解的更清楚一些。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章