ArcGIS Engine中的重點類庫介紹

System類庫

System類庫是ArcGIS體系結構中最底層的類庫。System類庫包含給構成ArcGIS的其他類庫提供服務的組件。System類庫中定義了大量開發者可以實現的接口。AoInitializer對象就是在System類庫中定義的,所有的開發者必須使用這個對象來初始化ArcGISEngine和解除ArcGIS Engine的初始化。開發者不能擴展這個類庫,但可以通過實現這個類庫中包含的接口來擴展ArcGIS系統。

SystemUI類庫

SystemUI類庫包含用戶界面組件接口定義,這些用戶界面組件可以在ArcGISEngine中進行擴展。包含ICommandIToolIToolControl接口。開發者用這些接口來擴展UI組件,ArcGISEngine開發人員自己的組件將使用這些UI組件。這個類庫中包含的對象是一些實用工具對象,開發人員可以通過使用這些對象簡化用戶界面的開發。開發者不能擴展這個類庫,但可以通過實現這個類庫中包含的接口來擴展ArcGIS系統。

Geometry類庫

Geometry類庫處理存儲在要素類中的要素幾何圖形或形狀或其他圖形元素。大多數用戶會遇到的基本幾何圖形對象爲PointMultiPointPolylinePolygon。除了這些頂級實體外,就是作爲多義線和多邊形的組成部分的幾何圖形,是組成幾何圖形的子要素。它們是SegementPathRingPolylinePolygon由一系列相連接的、構成列Path的片段組成。一個片段由兩個不同的點,即起始點和結束點,以及一個定義這兩點之間彎曲度的元素類型組成。片段的類型有CircularArcLineElliptic ArcBezierCurve。所有幾何圖形對象都可以有與其頂點相關聯的ZMIDs。所有的基本幾何圖形對象都支持諸如BufferClip等幾何操作。幾何子要素不可以由開發者擴展。

GIS中的實體指的是現實世界中的要素;現實世界中要素的位置由一個帶有空間參考的幾何圖形來定義。空間參考對象,包括投影座標和地理座標系統,都包括在Geometry類庫中。開發者可以通過添加新的空間參考和投影來擴展空間參考系統。

Display類庫

Display類庫包含用於顯示GIS數據的對象。除了負責實際輸出圖像的主要顯示對象外,這個類庫還包含表示符號和顏色的對象,它們用來控制在顯示上繪製時實體的屬性。Display類庫還包含在與顯示交互時提供給用戶可視化反饋的對象。開發者與Display最常用的交互方式就是類似於Map對象或PageLayout對象提供的視圖。Display類庫的所有部分都能進行擴展;通常擴展的對象包括符號、顏色和顯示反饋。

Server類庫

Server類庫包含允許用戶連接並操作ArcGIS Server的對象。開發人員用GISServer Connection對象來訪問ArcGIS Server。通過GISServer Connection可以訪問Server ObjectsMananger對象。用這個對象,開發人員可以操作Server Context對象,以處理運行於服務器上的ArcObjects。開發人員還可以用GISClient類庫與ArcGIS Server進行交互。

Output類庫

Output類庫用於創建圖形輸出到諸如打印機和繪圖儀等設備及諸如增強型元文件和柵格圖像格式(JPGBMP等)等硬拷貝格式。開發人員用這個類庫中的對象及ArcGIS系統的其他部分創建圖形輸出。通常是DisplayCarto類庫中的對象。開發者可以爲自定義設備和輸出格式擴展Output類庫。

GeoDatabase類庫

Geodatabase類庫爲地理數據庫提供了編程API。地理數據庫是建立在標準工業關係型和對象關係數據庫技術之上的地理數據倉庫。Geodatabase類庫中的對象爲ArcGIS支持的所有數據源提供了一個統一編程模型。GeoDatabase類庫定義了許多由ArcObjects架構中更高級的數據源提供者實現的接口。開發者可以擴展地理數據庫,以支持特定類型的數據對象(要素、類等);此外,Geodatabase類庫還有用PlugInDataSource對象添加的自定義矢量數據源。地理數據庫支持的本地數據類型不能擴展。

GISClient類庫

GISClient類庫允許開發者使用Web服務;這些Web服務可以由ArcIMSArcGISServer提供。GISClient類庫中包含用於連接GIS服務器以使用Web服務的對象。該類庫支持ArcIMS的圖像和要素服務。GISClient類庫提供以無態方式直接或通過Web服務目錄操作ArcGISServer對象的通用編程模型。在ArcGIS Server上運行的ArcObjects組件不能通過GISClient接口來訪問。要直接獲得訪問在服務器上運行的ArcObjects,開發人員應使用Server類庫中的功能。

DataSourcesFile類庫

DataSourcesFile類庫包含用於基於文件數據源的GeoDatabase API實現。這些基於文件的數據源包括shapefilecoverageTINCADSDCStreetMapVPF。開發者不能擴展DtaSourcesFile類庫。

DataSourcesGDB類庫

DataSourcesGDB類庫包含用於數據庫數據源的GeoDatabase API實現。這些數據源包括MicrosoftAccessArcSDE支持的關係型數據庫管理系統—IBMDB2InformixMicrosoftSQL ServerOracle。開發者不能擴展DataSourcesGDB類庫。

DataSourcesOleDB類庫

DataSourcesOleDB類庫包含用於MicrosoftOLEDB數據源的GeoDatabaseAPI實現。此類庫只能用在Windows操作系統上。這些數據源包括支持數據提供者和文本文件工作空間的所有OLEDB。開發者不能擴展DataSourcesOleDB類庫。

DataSourcesRaster類庫

DataSourcesRaste類庫包含用於柵格數據源的GeoDatabase API實現。這些數據源包括ArcSDE支持的關係型數據庫管理系統—IBMDB2InformixMicrosoftSQL ServerOracle,以及其支持的RDO柵格文件格式。當需要支持新的柵格格式時,開發者不擴展這個類庫,而是擴展RDO。開發者不能擴展DataSourcesRaster類庫。

GeoDatabaseDistributed類庫

GeoDatabaseDistributed類庫通過提供地理數據庫數據導入和導出工具,可以支持對企業級地理數據庫的分佈式訪問。開發者不能擴展GeoDatabaseDistribute類庫。

Carto類庫

Carto類庫支持地圖的創建和顯示;這些地圖可以在一幅地圖或由許多地圖及其地圖元素組成的頁面中包含數據。PageLayout對象是駐留一幅或多幅地圖及其底土元素的容器。地圖元素包括指北針、圖例、比例尺等。Map對象包括地圖上所有圖層都有的屬性空間參考、地圖比例尺等,以及操作地圖圖層的方法。可以將許多不同類型的圖層加載到地圖中。

不同的數據源通常有相應的圖層負責數據在地圖上的顯示,矢量要素由FeatureLayer對象處理,柵格數據由RasterLayer對象處理,TIN數據由TinLayer對象處理,等等。必要的話,圖層可以處理與之相關數據的所有繪圖操作,但通常圖層都是一個相關的Renderer對象。Renderer對象的屬性控制着數據在地圖中的顯示方式。Renderers通常用Display類庫中的符號來進行實際繪製,而Renderer只是將特定符號與待繪實體的屬性相匹配。Map對象和PageLayout對象可以包含元素。元素用其幾何圖形定義其在地圖或頁面上的位置,用行爲控制元素的顯示。包括用於基本形狀、文字標註和複雜標註等的元素。Carto類庫還支持地圖註釋和動態標註。儘管開發者可以在其應用程序中直接使用MapPageLayout對象,但通常來說開發者更經常使用更高級的對象,如MapControlPageLayoutControlArcGIS應用程序。這些高級對象簡化了一些任務,儘管它們也提供對更低級別的MapPageLayout對象的訪問,允許開發者更好的控制對象。MapPagelayout對象並不是Carto類庫中提供地圖和頁面繪製的僅有對象。MxdServerMapServer對象都支持地圖和頁面的繪製,但不是繪製到窗口中,而是直接繪製到文件中。開發者可以用MapDocument對象保存地圖和地圖文檔(.mxd)中頁面佈局的狀態,以便在ArcMapArcGIS控件中使用。Carto類庫通常可以在許多方面進行擴展。自定義RendererLayer等都很普遍。自定義圖層通常是向地圖應用程序中加載自定義數據最簡單的方法。

Location類庫

Location類庫包含支持地理編碼和操作路徑事件的對象。地理編碼功能可以通過細粒度對象來完全控制訪問,或通過GeocodeServer對象提供的簡化API來訪問。開發者可以創建自己的地理編碼對象。線性參考功能提供對象用於向線性要素添加事件,用各種繪製方法來繪製這些事件。開發者可以擴展線性參考功能。

NetworkAnalysis類庫

NetworkAnalysis類庫提供用於在地理數據庫中加載網絡數據的對象並提供對象用於分析加載到地理數據庫中的網絡。開發者開以擴展NetworkAnalysis類庫以便支持自定義網絡追蹤。這個類庫目的在於操作公共網絡:供氣管線、電力供應線網等。

Controls類庫

開發者用Controls類庫來構建或擴展具有ArcGIS功能的應用程序。ArcGISControls通過封裝ArcObjects並提供粗粒度的API簡化了開發過程。儘管這些控件封裝了細粒度的ArcObjects,但是並不限制對這些細粒度的ArcObjects的訪問。MapControlPageLayoutControl分別封裝了Carto類庫的的MapPageLayout對象。ReaderControl同時封裝了MapPageLayout對象,且在操作控件時提供了簡化的API。如果授權了地圖發佈程序,開發者可以以訪問MapPageLayout控件類似的方式訪問內部對象。Controls類庫還包含實現一個目錄表的TOCControl及駐留操作合適控件的命令和工具的ToolbarControl。開發者通過創建自己的用於操作控件的命令和工具來擴展Controls類庫。爲此Controls類庫提供HookHelper對象。這個對象使得創建一個操作任何控件及操作諸如ArcMap這樣的ArcGIS應用程序的命令變得非常簡單。

GeoAnalyst類庫

GeoAnalyst類庫包含支持核心空間分析功能的對象。這些功能用在SpatialAnalyst3Danalyst兩個類庫中。開發者可以通過創建新類型的柵格操作來擴展GeoAnalyst類庫。爲使用這個類庫中的對象,需要ArcGISSpatial Analyst3DAnalyst擴展模塊許可,或者ArcGISEngine運行時空間分析或3D分析選項許可。

3DAnalyst類庫

3Danalyst類庫包含操作3D場景的對象,其方式與Carto類庫包含操作2D地圖的對象類似。Scene對象是3Danalyst類庫中主要對象之一,因爲該對象與Map對象一樣,是數據的容器。CameraTarget對象規定在考慮要素位置與觀察者關係時場景如何瀏覽。一個場景由一個和多個圖層組成;這些圖層規定了場景中包含的數據及這些數據如何顯示。開發者很少擴展3Danalyst類庫。爲使用這個類庫中的對象,需要ArcGIS3DAnalyst擴展模塊許可或ArcGISEngine運行時3D分析選項許可。

GlobeCore類庫

GlobeCore類庫包含操作globe數據的對象,其方式與Carto類庫包含操作2D地圖的對象類似。Globe對象是GlobeCore類庫中主要對象之一,因爲該對象與Map對象一樣,是數據的容器。GlobeCamera對象規定在考慮globe位置與觀察者關係時golbe如何瀏覽。一個golbe有一個和多個圖層;這些圖層規定了golbe中包含的數據及這些數據如何顯示。

GlobeCore類庫中有一個開發控件及與其一起使用的命令和工具。該開發控件可以與Controls類庫中的對象協同使用。

SpatialAnalyst類庫

這個類庫中的對象,需要ArcGIS空間分析擴展模塊許可或ArcGIS Engine運行時空間分析選項許可。開發者很少擴展GlobeCore類庫。爲使用這個類庫中的對象,需要ArcGIS3DAnalyst擴展模塊許可或ArcGISEngine運行時3D分析選項許可。SpatialAnalyst類庫包含在柵格數據和矢量數據上執行空間分析的對象。開發者通常使用這個類庫中的對象,而不擴展這個類庫。

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