ArcGIS Engine开发之旅02--ArcGIS Engine中的类库
原文 ArcGIS Engine開發(fā)之旅02--ArcGIS Engine中的類庫
System類庫
System類庫是ArcGIS體系結(jié)構(gòu)中最底層的類庫。System類庫包含給構(gòu)成ArcGIS的其他類庫提供服務(wù)的組件。System類庫中定義了大量開發(fā)者可以實現(xiàn)的接口。AoInitializer對象就是在System類庫中定義的,所有的開發(fā)者必須使用這個對象來初始化ArcGISEngine和解除ArcGIS Engine的初始化。開發(fā)者不能擴展這個類庫,但可以通過實現(xiàn)這個類庫中包含的接口來擴展ArcGIS系統(tǒng)。
SystemUI類庫
SystemUI類庫包含用戶界面組件接口定義,這些用戶界面組件可以在ArcGISEngine中進行擴展。包含ICommand、ITool和IToolControl接口。開發(fā)者用這些接口來擴展UI組件,ArcGISEngine開發(fā)人員自己的組件將使用這些UI組件。這個類庫中包含的對象是一些實用工具對象,開發(fā)人員可以通過使用這些對象簡化用戶界面的開發(fā)。開發(fā)者不能擴展這個類庫,但可以通過實現(xiàn)這個類庫中包含的接口來擴展ArcGIS系統(tǒng)。
Geometry類庫
Geometry類庫處理存儲在要素類中的要素幾何圖形或形狀或其他圖形元素。大多數(shù)用戶會遇到的基本幾何圖形對象為Point、MultiPoint、Polyline和Polygon。除了這些頂級實體外,就是作為多義線和多邊形的組成部分的幾何圖形,是組成幾何圖形的子要素。它們是Segement、Path和Ring。Polyline和Polygon由一系列相連接的、構(gòu)成列Path的片段組成。一個片段由兩個不同的點,即起始點和結(jié)束點,以及一個定義這兩點之間彎曲度的元素類型組成。片段的類型有CircularArc、Line、Elliptic Arc和BezierCurve。所有幾何圖形對象都可以有與其頂點相關(guān)聯(lián)的Z、M和IDs。所有的基本幾何圖形對象都支持諸如Buffer,Clip等幾何操作。幾何子要素不可以由開發(fā)者擴展。
GIS中的實體指的是現(xiàn)實世界中的要素;現(xiàn)實世界中要素的位置由一個帶有空間參考的幾何圖形來定義。空間參考對象,包括投影坐標和地理坐標系統(tǒng),都包括在Geometry類庫中。開發(fā)者可以通過添加新的空間參考和投影來擴展空間參考系統(tǒng)。
Display類庫
Display類庫包含用于顯示GIS數(shù)據(jù)的對象。除了負責(zé)實際輸出圖像的主要顯示對象外,這個類庫還包含表示符號和顏色的對象,它們用來控制在顯示上繪制時實體的屬性。Display類庫還包含在與顯示交互時提供給用戶可視化反饋的對象。開發(fā)者與Display最常用的交互方式就是類似于Map對象或PageLayout對象提供的視圖。Display類庫的所有部分都能進行擴展;通常擴展的對象包括符號、顏色和顯示反饋。
Server類庫
Server類庫包含允許用戶連接并操作ArcGIS Server的對象。開發(fā)人員用GISServer Connection對象來訪問ArcGIS Server。通過GISServer Connection可以訪問Server ObjectsMananger對象。用這個對象,開發(fā)人員可以操作Server Context對象,以處理運行于服務(wù)器上的ArcObjects。開發(fā)人員還可以用GISClient類庫與ArcGIS Server進行交互。
Output類庫
Output類庫用于創(chuàng)建圖形輸出到諸如打印機和繪圖儀等設(shè)備及諸如增強型元文件和柵格圖像格式(JPG、BMP等)等硬拷貝格式。開發(fā)人員用這個類庫中的對象及ArcGIS系統(tǒng)的其他部分創(chuàng)建圖形輸出。通常是Display和Carto類庫中的對象。開發(fā)者可以為自定義設(shè)備和輸出格式擴展Output類庫。
GeoDatabase類庫
Geodatabase類庫為地理數(shù)據(jù)庫提供了編程API。地理數(shù)據(jù)庫是建立在標準工業(yè)關(guān)系型和對象關(guān)系數(shù)據(jù)庫技術(shù)之上的地理數(shù)據(jù)倉庫。Geodatabase類庫中的對象為ArcGIS支持的所有數(shù)據(jù)源提供了一個統(tǒng)一編程模型。GeoDatabase類庫定義了許多由ArcObjects架構(gòu)中更高級的數(shù)據(jù)源提供者實現(xiàn)的接口。開發(fā)者可以擴展地理數(shù)據(jù)庫,以支持特定類型的數(shù)據(jù)對象(要素、類等);此外,Geodatabase類庫還有用PlugInDataSource對象添加的自定義矢量數(shù)據(jù)源。地理數(shù)據(jù)庫支持的本地數(shù)據(jù)類型不能擴展。
GISClient類庫
GISClient類庫允許開發(fā)者使用Web服務(wù);這些Web服務(wù)可以由ArcIMS和ArcGISServer提供。GISClient類庫中包含用于連接GIS服務(wù)器以使用Web服務(wù)的對象。該類庫支持ArcIMS的圖像和要素服務(wù)。GISClient類庫提供以無態(tài)方式直接或通過Web服務(wù)目錄操作ArcGISServer對象的通用編程模型。在ArcGIS Server上運行的ArcObjects組件不能通過GISClient接口來訪問。要直接獲得訪問在服務(wù)器上運行的ArcObjects,開發(fā)人員應(yīng)使用Server類庫中的功能。
DataSourcesFile類庫
DataSourcesFile類庫包含用于基于文件數(shù)據(jù)源的GeoDatabase API實現(xiàn)。這些基于文件的數(shù)據(jù)源包括shapefile、coverage、TIN、CAD、SDC、StreetMap和VPF。開發(fā)者不能擴展DtaSourcesFile類庫。
DataSourcesGDB類庫
DataSourcesGDB類庫包含用于數(shù)據(jù)庫數(shù)據(jù)源的GeoDatabase API實現(xiàn)。這些數(shù)據(jù)源包括MicrosoftAccess和ArcSDE支持的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)—IBM、DB2、Informix、MicrosoftSQL Server和Oracle。開發(fā)者不能擴展DataSourcesGDB類庫。
DataSourcesOleDB類庫
DataSourcesOleDB類庫包含用于MicrosoftOLEDB數(shù)據(jù)源的GeoDatabaseAPI實現(xiàn)。此類庫只能用在Windows操作系統(tǒng)上。這些數(shù)據(jù)源包括支持數(shù)據(jù)提供者和文本文件工作空間的所有OLEDB。開發(fā)者不能擴展DataSourcesOleDB類庫。
DataSourcesRaster類庫
DataSourcesRaste類庫包含用于柵格數(shù)據(jù)源的GeoDatabase API實現(xiàn)。這些數(shù)據(jù)源包括ArcSDE支持的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)—IBM、DB2、Informix、MicrosoftSQL Server和Oracle,以及其支持的RDO柵格文件格式。當(dāng)需要支持新的柵格格式時,開發(fā)者不擴展這個類庫,而是擴展RDO。開發(fā)者不能擴展DataSourcesRaster類庫。
GeoDatabaseDistributed類庫
GeoDatabaseDistributed類庫通過提供地理數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入和導(dǎo)出工具,可以支持對企業(yè)級地理數(shù)據(jù)庫的分布式訪問。開發(fā)者不能擴展GeoDatabaseDistribute類庫。
Carto類庫
Carto類庫支持地圖的創(chuàng)建和顯示;這些地圖可以在一幅地圖或由許多地圖及其地圖元素組成的頁面中包含數(shù)據(jù)。PageLayout對象是駐留一幅或多幅地圖及其底土元素的容器。地圖元素包括指北針、圖例、比例尺等。Map對象包括地圖上所有圖層都有的屬性—空間參考、地圖比例尺等,以及操作地圖圖層的方法??梢詫⒃S多不同類型的圖層加載到地圖中。
不同的數(shù)據(jù)源通常有相應(yīng)的圖層負責(zé)數(shù)據(jù)在地圖上的顯示,矢量要素由FeatureLayer對象處理,柵格數(shù)據(jù)由RasterLayer對象處理,TIN數(shù)據(jù)由TinLayer對象處理,等等。必要的話,圖層可以處理與之相關(guān)數(shù)據(jù)的所有繪圖操作,但通常圖層都是一個相關(guān)的Renderer對象。Renderer對象的屬性控制著數(shù)據(jù)在地圖中的顯示方式。Renderers通常用Display類庫中的符號來進行實際繪制,而Renderer只是將特定符號與待繪實體的屬性相匹配。Map對象和PageLayout對象可以包含元素。元素用其幾何圖形定義其在地圖或頁面上的位置,用行為控制元素的顯示。包括用于基本形狀、文字標注和復(fù)雜標注等的元素。Carto類庫還支持地圖注釋和動態(tài)標注。盡管開發(fā)者可以在其應(yīng)用程序中直接使用Map和PageLayout對象,但通常來說開發(fā)者更經(jīng)常使用更高級的對象,如MapControl、PageLayoutControl或ArcGIS應(yīng)用程序。這些高級對象簡化了一些任務(wù),盡管它們也提供對更低級別的Map和PageLayout對象的訪問,允許開發(fā)者更好的控制對象。Map和Pagelayout對象并不是Carto類庫中提供地圖和頁面繪制的僅有對象。MxdServer和MapServer對象都支持地圖和頁面的繪制,但不是繪制到窗口中,而是直接繪制到文件中。開發(fā)者可以用MapDocument對象保存地圖和地圖文檔(.mxd)中頁面布局的狀態(tài),以便在ArcMap或ArcGIS控件中使用。Carto類庫通常可以在許多方面進行擴展。自定義Renderer、Layer等都很普遍。自定義圖層通常是向地圖應(yīng)用程序中加載自定義數(shù)據(jù)最簡單的方法。
Location類庫
Location類庫包含支持地理編碼和操作路徑事件的對象。地理編碼功能可以通過細粒度對象來完全控制訪問,或通過GeocodeServer對象提供的簡化API來訪問。開發(fā)者可以創(chuàng)建自己的地理編碼對象。線性參考功能提供對象用于向線性要素添加事件,用各種繪制方法來繪制這些事件。開發(fā)者可以擴展線性參考功能。
NetworkAnalysis類庫
NetworkAnalysis類庫提供用于在地理數(shù)據(jù)庫中加載網(wǎng)絡(luò)數(shù)據(jù)的對象并提供對象用于分析加載到地理數(shù)據(jù)庫中的網(wǎng)絡(luò)。開發(fā)者開以擴展NetworkAnalysis類庫以便支持自定義網(wǎng)絡(luò)追蹤。這個類庫目的在于操作公共網(wǎng)絡(luò):供氣管線、電力供應(yīng)線網(wǎng)等。
Controls類庫
開發(fā)者用Controls類庫來構(gòu)建或擴展具有ArcGIS功能的應(yīng)用程序。ArcGISControls通過封裝ArcObjects并提供粗粒度的API簡化了開發(fā)過程。盡管這些控件封裝了細粒度的ArcObjects,但是并不限制對這些細粒度的ArcObjects的訪問。MapControl和PageLayoutControl分別封裝了Carto類庫的的Map和PageLayout對象。ReaderControl同時封裝了Map和PageLayout對象,且在操作控件時提供了簡化的API。如果授權(quán)了地圖發(fā)布程序,開發(fā)者可以以訪問Map和PageLayout控件類似的方式訪問內(nèi)部對象。Controls類庫還包含實現(xiàn)一個目錄表的TOCControl及駐留操作合適控件的命令和工具的ToolbarControl。開發(fā)者通過創(chuàng)建自己的用于操作控件的命令和工具來擴展Controls類庫。為此Controls類庫提供HookHelper對象。這個對象使得創(chuàng)建一個操作任何控件及操作諸如ArcMap這樣的ArcGIS應(yīng)用程序的命令變得非常簡單。
GeoAnalyst類庫
GeoAnalyst類庫包含支持核心空間分析功能的對象。這些功能用在SpatialAnalyst和3Danalyst兩個類庫中。開發(fā)者可以通過創(chuàng)建新類型的柵格操作來擴展GeoAnalyst類庫。為使用這個類庫中的對象,需要ArcGISSpatial Analyst或3DAnalyst擴展模塊許可,或者ArcGISEngine運行時空間分析或3D分析選項許可。
3DAnalyst類庫
3Danalyst類庫包含操作3D場景的對象,其方式與Carto類庫包含操作2D地圖的對象類似。Scene對象是3Danalyst類庫中主要對象之一,因為該對象與Map對象一樣,是數(shù)據(jù)的容器。Camera和Target對象規(guī)定在考慮要素位置與觀察者關(guān)系時場景如何瀏覽。一個場景由一個和多個圖層組成;這些圖層規(guī)定了場景中包含的數(shù)據(jù)及這些數(shù)據(jù)如何顯示。開發(fā)者很少擴展3Danalyst類庫。為使用這個類庫中的對象,需要ArcGIS3DAnalyst擴展模塊許可或ArcGISEngine運行時3D分析選項許可。
GlobeCore類庫
GlobeCore類庫包含操作globe數(shù)據(jù)的對象,其方式與Carto類庫包含操作2D地圖的對象類似。Globe對象是GlobeCore類庫中主要對象之一,因為該對象與Map對象一樣,是數(shù)據(jù)的容器。GlobeCamera對象規(guī)定在考慮globe位置與觀察者關(guān)系時golbe如何瀏覽。一個golbe有一個和多個圖層;這些圖層規(guī)定了golbe中包含的數(shù)據(jù)及這些數(shù)據(jù)如何顯示。
GlobeCore類庫中有一個開發(fā)控件及與其一起使用的命令和工具。該開發(fā)控件可以與Controls類庫中的對象協(xié)同使用。
SpatialAnalyst類庫
這個類庫中的對象,需要ArcGIS空間分析擴展模塊許可或ArcGIS Engine運行時空間分析選項許可。開發(fā)者很少擴展GlobeCore類庫。為使用這個類庫中的對象,需要ArcGIS3DAnalyst擴展模塊許可或ArcGISEngine運行時3D分析選項許可。SpatialAnalyst類庫包含在柵格數(shù)據(jù)和矢量數(shù)據(jù)上執(zhí)行空間分析的對象。開發(fā)者通常使用這個類庫中的對象,而不擴展這個類庫
?
Version
Version庫是ArcGIS 10新出來的一個類庫,該類庫包含了將獨立應(yīng)用程序綁定到特定的ArcGIS系列產(chǎn)品的函數(shù)和方法,該類庫是運行Engine的應(yīng)用程序的時候。
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/arxive/p/5905079.html
總結(jié)
以上是生活随笔為你收集整理的ArcGIS Engine开发之旅02--ArcGIS Engine中的类库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 繁华模拟赛 ljw分雕塑
- 下一篇: 梦到小蛇是什么意思