宏觀上看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的接口,把這塊瞭解的更清楚一些。

 

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