ArcGIS-Engine第一章-二次開發概述_第1頁
ArcGIS-Engine第一章-二次開發概述_第2頁
ArcGIS-Engine第一章-二次開發概述_第3頁
ArcGIS-Engine第一章-二次開發概述_第4頁
ArcGIS-Engine第一章-二次開發概述_第5頁
已閱讀5頁,還剩47頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

地理信息系統開發

—ArcEngine方法第一章ArcGISEngine概述1ArcGIS體系結構2 ArcGISEngine是什么3ArcGISEngine的主要功能4ArcGISEngine類庫5ArcGISEngine控件ArcGIS整體架構CustomizationArcGISDesktopArcGISServerArcIMSArcGISMobileArcPadArcGISEngine桌面GIS嵌入式GIS服務器GIS移動GISGeodatabaseDBMSFile-basedXMLArcSDEArcEditorArcViewArcInfoEngineDeveloperKitServer

DeveloperKitCustomizationDesktopDeveloperKit.NETC++VBJava.NETVC++VB.NETADFJavaADFC++ArcObjectsXML+VBScriptArcPadApplicationBuilderJavaScriptHTML/DHTMLXML.NETServicesJSPJavaActiveX(ASP)ColdFusion1、ArcGIS的客戶端ArcGIS的客戶端產品包括ArcView、ArcEditor、ArcInfo三個客戶端都有統一風格的桌面應用:ArcCatalog、ArcMap和ArcToolbox。

ArcCatalog:ArcCatalog是一個集成化的空間數據管理器,主要用于空間數據瀏覽,Geodatabase的結構定義、數據的導入導出、網絡模型的生成、對象關系和規則的定義、元數據的定義和編輯修改等。ArcCatalog支持大量的數據格式,包括:ESRIshapefiles,Geodatabases,ArcSDElayers,INFOtables,Image,Grid,Tin,CAD文件,動態分段事件以及其它ESRI數據類型和文件等。ArcMap:

是集空間數據顯示、編輯、查詢檢索、統計、報表生成、空間分析和高級制圖等眾多功能于一體的桌面應用平臺。ArcMap提供面向對象的類似CAD的空間數據編輯工具,全面支持空間數據的可視化交互操作。ArcMap提供了所見即所得的符號編輯器,令使用者可以隨心所欲地生成任意復雜的點線面符號。ArcMap進一步拓展了ESRI強大的空間數據直接讀取能力,多種格式的數據無需進行轉換或利用中間交換格式即可動態地直接使用。ArcMap支持的空間數據格式包括:ArcInfocoverages,ESRIshapefiles,ArcSDElayers,DXFandDWG,DGN,大量的圖像格式,GRID、TIN,等等。ArcMap還支持空間數據的動態投影(on-the-flyprojection)。ArcToolbox是一個用于空間數據格式轉換、疊加處理、緩沖區生成、坐標轉換等的集成化“工具箱”。ArcToolbox以樹形結構方式組織了120多個不同的空間數據處理工具,并且都是以菜單驅動的方式提供出來,這為我們以一種確定的、輕松的方式去完成哪怕是很復雜的工作提供了前所未有的方便。2、ArcGIS的服務器端ArcIMS用戶的空間數據和應用可以通過ArcIMS在Intranet/Internet環境中進行發布和共享。ArcIMS提供用戶在服務器端可以以影像方式或矢量數據流方式進行數據發布。客戶端用戶通過工業標準的通用瀏覽器即可對ArcIMS服務站點進行訪問和交互操作。ArcIMS支持包括Servlet、ColdFusion、ASP等多種WebServer端技術,同時開發了有望成為未來Internet環境中GIS通用語言的ArcXML,為空間數據跨廠商跨平臺的廣泛交流和共享打下了堅實的基礎。ArcSDEArcSDE是ESRI的空間數據庫引擎,用于對海量空間數據及其屬性數據的管理和驅動,為并發訪問的客戶端提供快速、安全的數據服務。ArcSDE支持工業標準的DBMS平臺(如:ORACLE、SQLServer、DB2、Informix等),同時引入了其獨有的異步緩沖機制和協同操作機制,使得空間數據服務的響應效率得到提高,真正起到了“引擎”的作用,而并不僅僅是提供一種空間數據存儲方式。另外,ArcSDE具有豐富的客戶端可供用戶選用,如:ArcInfo、ArcView、ArcIMS、MapObjects、ArcExplorer等。同時,還提供了開放的API編程接口,供用戶或開發商開發自己的客戶端應用或產品。2、ArcGIS的服務器端4、ArcGIS與ArcObjectsArcGIS是構建在ArcObjects組件庫之上。ESRI

使用ArcObjects來開發軟件和應用程序。開發者使用ArcObjects去客戶化軟件與創建自己的應用程序。ArcObjects是ArcGIS的核心。5、ArcGIS軟件體系結構產品共享ArcObjects組件庫和底層功能ArcGISEngine包含了核心的功能ArcGISDesktopArcGISEngineArcGISServerArcGISEngine是什么?ArcEngine是一組完備的并且打包的嵌入式GIS組件庫和工具庫。ArcEngine不是一個終端用戶產品,而是軟件開發人員的工具包,包括一系列制圖組件。ArcGISEngine包含了兩個產品:—ArcGISEngineRuntime是運行所有ArcGISEngine應用程序所必須的軟件最終用戶需要安裝可以進行不同的運行時選項選擇—ArcGISEngineDeveloperKit開發者使用的包含了所有開發庫和開發資源可以進行所有的選項開發兩個產品都通過軟件許可文件授權ArcGISEngine的組成ArcGISEngineDeveloperKit產品用來創建獨立、嵌入式的桌面應用程序包含構建ArcGISEngine應用程序所需的許可構建在ArcObjects基礎之上不包含ArcMap,ArcCatalog,ArcToolbox,ArcScene等應用程序框架運行在桌面上(Windows,Unix&Linux)提供多種開發APIsC++,.Net,Java,COM4種APIs使用了相同的對象包括了構建定制ArcGISEngine獨立應用的所有功能ArcGISEngineRuntime產品是基于ArcGISEngine應用的運行時可分發安裝跨平臺Windows,UNIX&Linux沒有ArcGIS桌面應用框架或對話框需要許可授權通過代碼或應用工具配置ArcGISEngineRuntime產品ArcGISEngine運行時包含:標準EngineRuntimeEngine擴展企業GeoDatabase編輯更新要素和編輯方案空間分析3D分析StreetMapUSAArcGISEngine的邏輯體系基本服務:由ArcGIS底層組件庫AO構成,幾乎所有的GIS應用程序都需要(如Geometry和Display)。數據存取:ArcEngine可以對許多柵格和矢量格式進行存取,包括強度靈活的地理數據庫。地圖表達:包括用于創建和顯示帶有符號體系和標注功能的地圖的AO,以及包括創建自定義應用程序的專題圖制作功能的AO。開發組件:用于快速應用程序開發的高級用戶接口控件和用于高效開發的一個綜合幫助系統。擴展模塊:AE標準版并不包含這些ArcObjects的許可,他們只能作為闊贊存在,需要特定的License才能運行。地圖瀏覽地圖制作數據查詢數據分析所有的開發控件

—MapControl,PageLayout,Toolbar,TOC,ArcReader對所有矢量和柵格數據源的讀權限對Shapefile和pGDB的寫權限讀/寫MXD文件三維分析空間分析網絡分析智能標注數據互操作邏輯示意圖跟蹤分析地理統計分析標準功能擴展模塊ArcGISEngine的主要功能通過ArcEngine構建的GIS軟件能夠實現以下功能:對所有矢量和柵格數據源的讀權限對Shapefile和pGDB的寫權限讀/寫MXD文件數據的顯示和地圖瀏覽繪制來自于航空照片或衛星影像的圖像跟蹤和繪制要素(如點、線、圓及多邊形)繪制非GIS要素,如描述性文本、圖形元素地圖數據的坐標轉換搜索地圖上的要素或通過單擊來識別地圖上的要素多種要素選擇方式,如點選、框選、SQL屬性選擇顯示要素屬性字段的文本標注TOC圖層管理,如顯示具有多個地圖圖層的地圖要素符號化,使用主題方法為要素著色(如值映射圖、分類圖和點密度圖)制定工具和命令地圖布局和打印要素數據庫的管理和更新專題圖制作(如值映射圖、分類圖、點密度圖)跟蹤動態GPS要素地理編碼功能3D顯示及其應用數據管理和分析(創建緩沖區;計算差值;查找形狀的交集、聯合或反轉交集)交互操作個人地理數據庫與主地理數據庫其他拓展技術應用ArcEngine的主要特點ArcEngine作為一套強大的GIS開發組件,具有以下特征:標準的GIS框架成本適宜的配置開發控制器跨平臺功能跨開發語言ArcGIS的擴展功能開發資源ArcEngine的主要特點總之,ArcEngine非常適合于構建高級GIS應用軟件的基礎制圖。如實現部分ArcGISDesktop中ArcMap的GIS制圖功能。ArcEngine構建的GIS軟件ArcEngine與其他組件的區別與聯系ArcEngine和MapObjects的區別與聯系MapObjects是ESRI公司早期推出的一套構建定制的封裝控件,和ArcEngine一樣,它并不是一個終端產品,而且功能沒有ArcEngine強大。ArcEngine是小顆粒的封裝,而MO是大顆粒的封裝,而且MO并不支持空間數據庫連接MO主要是開發一些輕量級的應用,ArcEngine則能實現更為強大、更為復雜的GIS功能。

ArcEngine與其他組件的區別與聯系ArcEngine和ArcObjects的區別與聯系ArcObjects是ESRI公司用c++和基于微軟公司COM技術編寫的獨立于平臺的一套軟件組件庫AO是ArcGIS體系的基礎。ArcGISDesktop,ArcEngine,ArcGISServer的底層組件都是AOAO不是為終端用戶而是專門為開發人員提供的二次開發軟件,通過AO用戶主要是方便地拓展GIS應用系統。AO開發出來的系統不是獨立的產品,它必須以ArcGISDesktop為后臺基礎。這是AO和ArcEngine最主要的區別ArcEngine是基于AO組件庫的,即AO構建了ArcEngine,但ArcEngine是獨立于應用程序的AO編程環境,應用與ArcGISDesktop應用程序框架之外的ArcGIS組件ArcEngine的安裝在開發ArcEngine程序之前,需要首先部署開發環境。以C#語言為例,c#的集成開發環境選擇VisualStudio2010。ArcEngine的安裝步驟如下:安裝VisualStudio2010

安裝ArcGISDesktop10.x安裝ArcEngineRuntime10.x安裝ArcEngineDeveloperkitForMicrosoft.NetFramework10.xArcEngineDeveloperKit的授權

ArcGISEngine類庫圖ArcGISEngine類庫:1、SystemSystem類庫是ArcGIS系統結構中最底層的類庫。System類庫包含了構成為ArcGIS的其他類庫提供服務的組件。System類庫中定義了大量開發者可以實現的接口,如AoInitializer對象就是在System類庫中定義的,所有開發者必須使用這個對象來初始化ArcGISEngine。ArcGISEngine類庫:2、SystemUI包含用戶界面組件接口定義。如:Icommand、Itool和IToolControl接口。開發者使用這些接口來擴展UI組件。包含的一些使用工具對象,通過使用這些對象來簡化用戶界面的開發,如Icommand和Itool這樣的接口就在這里定義。ArcGISEngine類庫:3、Geometry處理存儲在要素類中的要素形狀。如:Point、MultiPoint、Polyline、Polygon等。存儲構成幾何要素的子要素。如:Segement、Path、Ring等。存儲幾何要素的空間參考對象。包括:投影坐標和地理坐標系統等。ArcGISEngine類庫:4、Display用于控制地圖顯示。包含用于顯示GIS數據的對象。包含符號、顏色等用來控制顯示的對象。包含交互操作時提供給用戶顯示回饋的對象,如MoveEnvelopeFeedback。ArcGISEngine類庫:5、Server用來連接并操作ArcGISServer。訪問ArcGISServer的ServerObjectsManager對象。操作ArcGISServer的ServerContext對象。用來控制地圖的輸出用戶創建圖形輸出到打印機或者繪圖儀等設備。輸出成JPG、BMP、增強圖元文件等格式。ArcGISEngine類庫:6、OutputArcGISEngine類庫:7、GeoDatabase為ArcGIS支持的所有數據源提供了一個統一編程模型。定義了許多由ArcObjects架構中更高級的數據源提供者實現的接口。開發者可以擴展地理數據庫,以支持特定類型的數據對象。該類庫還支持PlugInDataSource對象添加的自定義矢量數據源。ArcGISEngine類庫:8、GISClient允許開發者使用Web服務。可以連接到ArcIMS。支持以無狀態方式或者通過Web目錄操作ArcGISServer對象的編程模型。包含用于基于文件數據源的GeoDatabaseAPI實現。基于文件的數據源包括:shapefile、coverage、TIN、CAD、SDC、StreetMap和VPF。開發者不能擴展DataSourcesFile。9、DataSourcesFileArcGISEngine類庫:10、DataSourceGDB包含用于數據庫數據源的GeoDatabaseAPI實現。數據源包括:Access和ArcSDE支持的關系型數據庫管理系統,如:DB2、Informix、SQLServer、Oracle。開發者不能擴展該類庫。包含用戶MicrosoftOLEDB數據源的GeodatabaseAPI實現。只能用在MicrosoftWindows上。這些數據源包括支持數據提供者和文本文件工作空間的所有OLEDB。ArcGISEngine類庫:11、DataSourceOleDBArcGISEngine類庫:12、DataSourcesRaster包含用于柵格數據源的GeoDatabaseAPI實現。這些數據源包括ArcSDE支持的關系型數據庫管理系統:DB2、Informix、SQLServer、Oracle,以及支持RDO柵格文件格式。包含操作2D地圖的對象。支持2D地圖的創建和顯示。提供Map和PageLayout等基礎對象。提供MapDocument對象來操作地圖文檔。13、Carto類ArcGISEngine類庫:14、NetworkAnaliysis提供用于在地理數據庫中加載和分析網絡數據的對象。開發者可以擴展NetworkAnaliysis類庫,以便支持自定義的網絡追蹤。該類庫的目的在于操作公共網絡:供氣管線、供電網絡等。用來構建或擴展具有ArcGIS功能的應用程序。提供一系列的開發控件,通過封裝ArcObjects,提供粗顆粒度的API來簡化開發過程。提供HookHelper對象,簡化命令操作的創建。15、ControlsArcGISEngine類庫:16、GeoAnalyst包含支持核心空間分析功能的對象。這些功能用在SpatialAnalyst和3DAnalyst兩個類庫中。開發者可以通過創建新類型的柵格操作來擴展GeoAnalyst類庫。包含操作3D場景的對象。主要對象為:Scene。運行時需要3D許可選項17、3DAnalystArcGISEngine類庫:18、SpatialAnalyst包含在柵格數據和矢量數據上執行空間分析的對象。通常是直接使用給類庫中的對象,不做擴展。運行時需要空間分析選項許可。包含操作Globe數據的對象。主要對象為:Globe。運行時需要3D許可選項。19、GlobeCoreArcGISEngine中常用的控件ArcGISEngine控件概念嵌入式組件一每個ArcGIS控件都是嵌入式組件,可以拖放到可視化設計環境提供的容器窗體或對話框中。一旦放在了容器內,就可以改變ArcGIS控件的大小和位置,以便與其他嵌入式組件一起為應用程序提供用戶界面。ArcGISEngine控件概念屬性頁一旦控件被放入了容器中,就可以使用右鍵點擊該控件來彈出屬性頁面,可以方便的訪問控件的屬性和方法,減少代碼的編寫工作量。ArcGISEngine開發控件MapControlPageLayoutControlToolBarControlTOCControlSceneControlGlobelControl工作空間工作空間(Workspace)對象,是一個包含空間數據集和非空間數據集的數據容器,包含數據集、要素類、表等。工作空間工廠對象工作空間對應類型描述ShapefileWorkspaceFactoryesriFileSystemWorkspace打開shapefile文件TinWorkspaceFactoryesriFileSystemWorkspace打開Tin數據文件TextfileWorkspaceFactoryesriFileSystemWorkspace打開文本文件IWorkspace接口和IWorkspaceFactory接口ArcEngine的常用控件MapControl控件

MapControl主要用于地圖數據的可視化顯示,它提供了類似ArcMap中的空間數據顯示窗口(DataView),通過它用戶可完成很多提高地圖顯示效果的功能。

MapControl提供的功能主要有:顯示圖層地圖,放大、縮小、漫游;生成圖形元素(如點、線、圓、多邊形);顯示Lable注記;識別地圖上被選中的元素;進行空間或屬性查詢等MapControl控件ArcEngine的常用控件PageLayoutControl控件PageLayoutControl也是用于地圖數據的可視化顯示,但是和MapControl不同的是,它提供的顯示類似ArcMap中的地圖制圖與輸出窗口。ArcMap的Layout視圖能完成的工作,使用PageLayoutControl同樣可以完成,像添加設置圖例、地圖的打印輸出等許多功能PageLayoutControl控件ArcEngine的常用控件ToolbarControl控件

ToolbarControl需要和一個“伙伴控件”協同工作。

ToolbarControl及其類庫中的對象提供了類似于ArcGISDesktop的ArcMap應用程序框架那樣的框架組件,包括工具條、命令、菜單和狀態條等保護界面組件,這種框架可以被用戶改變位置,添加和刪除用戶界面組件。ToolbarControl控件伙伴控件這種類型的ArcGIS控件不能單獨使用,需要和另外一個控件一起協同工作。ToolbarControl和TOCControl是伙伴控件對應的伙伴控件一般為:MapControl、PageLayoutControl、ReaderControl、SceneControl或GlobeControl控件。可以通過屬性頁面來設置伙伴控件的關聯屬性。伙伴控件可以是MapControl、、該控件的伙伴控件可以是PageLayoutControl、ReadControl、SceneControl、GlobeControl。ArcEngine的常用控件TOCControl控件

TOCControl同樣需要和一個“伙伴控件”協同工作。

TOCControl提供了類似于ArcMap中的TableofContents窗口的功能。具體來說,就是TOCControl用“伙伴控件”來顯示地圖、圖層和符號體系內容的一個交互樹狀視圖并保持和其內容的同步性。該功能的目的主要是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論