ArcObjects,是一套ArcGIS的可重用的通用的二次開發組件集。
基本介紹
- 中文名:ArcObjects類庫
- 外文名:ArcObjects
- 簡稱:AO
- 平台:VBA,VB,VisualC++或.NET
- 公司:ESRI
- 本質:二次開發組件集
- 開發技術:COM
簡介,對象組件模型(COM)與ArcObjects,AO參考類庫,
簡介
ArcObjects,是一套ArcGIS的可重用的通用的二次開發組件集。可以毫不誇張地說,使用ArcObjects進行的二次開發是現在GIS次開發中最底層和最流行的開發方式。ESRI的程式設計師們將GIS的不同功能—從數據管理到圖形顯示—做成一個個COM組件,他們自己也使用這些組件開發出了ArcGIS這套軟體。 ArcObjects是ArcGIS軟體的核心,從理論上講,如果水平足夠高,也可以使用ArcObjects開發出一套的ArcGIS軟體來。
ESRI公司將其軟體使用GIS技術重新建構以後,於1999年推出了全新的GIS產品Arclnfo8. 2001年,ArcGIS8.1出現了。2004年,ArcGIS的版本變為ArcGIS9X是一套全面的、完善的和可伸縮的軟體平台。無論是單用戶還是多用戶,無論是在桌面端、伺服器端還是在網際網路上,ArcGIS都可以提供地理信息系統服務。
如圖I -7所示,ArcGIS是ESRI全套軟體產品的總稱,其軟體體系分為四個部分:桌面版GIS,嵌人式GIS , GIS伺服器和移動GIS。桌面版GIS、嵌入式GIS和伺服器GIS的一部分,都是使用ArcObjects開發的,這些GIS程式正是通過ArcObjects組件對象來獲取數據,完成地理分析任務並輸出地圖的。
對象組件模型(COM)與ArcObjects
ArcObjects(簡稱AO)是美國ESRI ( Environmental Systems Research Institute,Inc,)公司提供的一個GIS技術框架,它是基於Microsoft的COM技術開發的一套COM組件對象集,這個組件集提供了幾乎全部的底層GIS功能,就連ArcGIS軟體本身都是使用ArcObjects的組件開發出來的。由於ESRI開放了這個組件庫的APIs ,因此普通程式設計師也可以使用ArcObjects開發自己的GIS應用程式,這個過程和ESRI的程式設計師的工作是一樣的。
使用AO進行的GIS二次開發,就是在一定的開發平台上,如VBA,Visual Basic,VisualC+ +或.NET平台等,按照項目的具體需求將這些底層功能組件重新進行組裝,以集成一個更強大、更複雜的CUM對象的過程。使用AO進行的組件式GIS二次開發,是目前最流行、最靈活和最穩定的GIS開發方式。
AO參考類庫
(ArcObjects library reference)
AO的參考類庫對於AE開發者以及DESKTOP和SERVER是一樣的。每個AO庫都像是一個.NET程式集。因此,本文的餘下部分按照.NET的風格來引述這些類庫。
1.system
ArcGis構架中最低層的類庫。此程式集中包含的組件為其它組成ArcGis的類庫提供服務。
2.SystemUI
定義ArcGis系統中的用戶界面組件使用的類型。接口如ICommand和ITool都定義在此程式集內。實現這些類型通常在一個或多個更高級的庫中完成
3.ADF assembly
提供.NET基類,組件類別唯一ID(CATIDS),以及先前在UTILITY程式集中提供的實體類。
4.Utility
在9.2版本之前遭受批評。大多數功能先轉移到新的ADF程式集中了。
部署提示:你仍然可以使用UTILITY類發布程式,並且任何參考他們的項目會繼續正常運行;然而,注意UTILITY現在被反對,並且在以後的版本中將全部移除。
5.Geometry
包含核心幾何對象,比如點、多邊形、折線,等等。以及幾何類型和定義。Geometry程式集也為投影系統和地理坐標系統定義和實現空間參考對象。
6.Display
包含支持繪製符號到輸出設備的組件。螢幕顯示,符號,顏色和反饋對象,並且他們支持的所有對象都在這個程式集中定義了。
7.Server
包含獲取ArcGIS Server連線的對象. 這個連線通過此類庫中的e對象來管理,但其它類庫中的對象能通過使用server對象的函式來創建。
8.Output
包含需要生成輸出的對象,大部分都是MAPS和PAGELAYOUTS,到印表機和繪圖儀以及輸出到檔案。
9.GeoDatabase
包含所有關於數據獲取的定義類型。要素,表格,網路,TIN都在GeoDatabase程式集中定義。許多類型的實現包含在各自數據源的程式集裡。 部署提示:此類庫中有些對象的使用要求Geodatabase Update extension for ArcGIS Engine Runtime.
10.GISClient
包含遠程GIS服務的對象。這些服務可由ArcIMS或是ArcGIS Server提供.
11.ArcWeb
提供ArcWeb服務連線.
12.DataSourcesFile
包含GeoDatabase API支持的矢量數據的workspace factories以及workspace。
13.DataSourcesGDB
包含GeoDatabase支持的矢量數據和柵格數據格式的workspace factories以及workspace。
14.DataSourcesOleDB
為基於OLEDB的數據源提供workspace.
15.DataSourcesRaster
包含檔案柵格數據的workspace factories以及workspace。
16.DataSourcesNetCDF
包含用於讀取netCDF檔案的對象,以及在ArcGis中創建柵格、要素及表。
17.GeoDatabaseDistributed
包含支持分散式GeoDatabase perform、 checkout / checkin的對象.
18.GeoDatabaseExtensions
包含創建、管理和使用地形數據集(terrain datasets)以及地籍數據(cadastral fabrics)的對象.
注意:在9.2版本中,地籍相關對象還沒有完全實現,因此我們建議開發者在Cadastral Analyst extension發布前不要使用它們。
19.Carto
包含顯示數據的對象。對應地圖圖層的PageLayout和Map對象都在此類庫中,渲染所有支持的數據類型。這個程式集也包括
MxdServer和MapServer對象,被server用於在客戶伺服器模式(client server environment)中顯示地圖數據.
20.NetworkAnalysis
支持實體網路(utility networks)的創建和分析.
21.Location
包含與位置數據工作相關的對象。這既可能是路徑事件(route events),也可能是地理編碼(geocoding locations).
22.GeoAnalyst
包含核心的空間分析運算,被用於SpatialAnalyst和3DAnalyst extensions.
部署提示:要求3D or Spatial extension for ArcGIS Engine runtime.
23.Animation
包含在Map, Scene and Globe中使用動畫(Animation)的對象. 在ArcGIS 9.2中,包括ArcGIS Desktop,animation functionality在ArcMap, ArcScene, and ArcGlobe中都可以使用.然而,當使用ArcGIS Engine時, animation functionality對於Map control是無效的.它只能在Scene和Globe controls中使用, 這些是由3D Analyst extension支持的.
24.Maplex
包含通過使用Maplex Extension來標註要素的對象.其它的Maplex對象能在Carto程式集中找到.
部署提示:需要Maplex extension for ArcGIS Engine Runtime.
25.Geoprocessing
實現空間處理框架(Geoprocessing framework)來補充空間處理工具(Geoprocessing tools)的基礎設定. 這些工具是否有效取決於你的licenses範圍.參見individual tools for specific license information.
部署提示:有些geoprocessing tools和functionality要求extension license.參見documentation for each tool for specifics.
26.NetworkAnalyst
提供網路數據集(network datasets)工作的對象.這些對象允許你在你的程式中運行網路分析(network analysis).
部署提示:需要Network Analyst extension for ArcGIS Engine Runtime.
27.Schematic
實現圖表擴展項(Schematics extension)的無用戶界面功能性(non user-interface functionality).它掌握ArcGIS Schematics extension的核心對象, 被用於管理圖表數據及加工(schematic data and processes).Schematics extension支持ArcGis中圖表數據(schematic data)的分析、顯示和操作.
部署提示:需要Schematic extension for ArcGIS Engine Runtime.
28.SpatialAnalyst
包含在柵格數據和矢量數據上運行空間分析(spatial analyst)的對象.
部署提示:需要Spatial extension for ArcGIS Engine Runtime.
30.3DAnalyst
包含數據的三維分析(3D analysis)對像,以及三維數據(3D data)顯示.
部署提示:需要3D extension for ArcGIS Engine Runtime.
31.GlobeCore
包含地球數據(globe data)分析的對象,以及支持地球數據(globe data)的顯示.在此程式集中有個控制項(control)開發者可以使用。
部署提示:需要3D extension for ArcGIS Engine Runtime.
32.Controls
包含程式開發的控制項(controls),包括相應的命令(commands)和工具(tools).
部署提示:使用GlobeControl或SceneControl的程式需要3D extension for ArcGIS Engine Runtime.
33.TrackingAnalyst
對ArcMap實現追蹤分析擴展的無用戶界面功能性(non-user interface functionality of the Tracking Analyst extension)to ArcMap.Tracking Analyst extension在ArcGis中支持時間數據(temporal data)的顯示、分析和操作.
部署提示:需要Tracking extension for ArcGIS Engine Runtime
注
一個WorkspaceFactory是一個workspace的分配者,並允許一個客戶連線到一個由一系列連線屬性指定的workspace中。一個workspace代表一個資料庫(database)或者一個包含一個或多個數據集(dataset)的數據源(datasource)。數據集(dataset)的例子包括表格(table)、要素類(feature class)和關係類(relationship class)。一個workspaceFactory是一個可聯合創建的(cocreatable)、singleton(單獨)的對象。一個workspacefactory維護當前程式引用的活動工作(workspace)連線的一個池(pool)。連線屬性通過使用一個屬性設定對象(propertyset object)來說明,並且可以存儲到一個連線檔案.一個workspaceFactory也支持瀏覽和管理檔案系統工作(workspace)的方法,以及管理遠程資料庫工作(workspace)的連線檔案的方法。
Remarks
A WorkspaceFactory is a dispenser of workspaces and allows a client to connect to a workspace specified by a set of connection properties. A workspace represents a database or a datasource that contains one or more datasets. Examples of datasets include tables, feature classes and relationship classes. A WorkspaceFactory is a cocreatable, singleton object. A WorkspaceFactory maintains a pool of currently connected, active workspaces that are being referenced by the application. Connection properties are specified using a PropertySet object and can be saved to a connection file. A WorkspaceFactory also supports methods that can be used to browse and manage file system workspaces, and methods to manage connection files for remote database workspaces.