ArcGIS-Engine開發(fā)培訓(xùn)PPT課件.ppt_第1頁
ArcGIS-Engine開發(fā)培訓(xùn)PPT課件.ppt_第2頁
ArcGIS-Engine開發(fā)培訓(xùn)PPT課件.ppt_第3頁
ArcGIS-Engine開發(fā)培訓(xùn)PPT課件.ppt_第4頁
ArcGIS-Engine開發(fā)培訓(xùn)PPT課件.ppt_第5頁
已閱讀5頁,還剩86頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

2020 3 25 ArcGISEngine開發(fā)基礎(chǔ) 張文元 2020年3月25日 目錄 系統(tǒng)開發(fā)實例 5 ArcGISEngine介紹 ArcGIS框架 可編輯 ArcGISEngine介紹 ArcGISEngine是用于構(gòu)建定制應(yīng)用的一個完整的嵌入式GIS組件庫 使用ArcGISEngine可以創(chuàng)建獨立界面版本的應(yīng)用程序 也可以對現(xiàn)有的應(yīng)用程序進(jìn)行擴展 為GIS和非GIS用戶提供專門的空間解決方案 開發(fā)者能將ArcGIS功能集成到一些應(yīng)用軟件 還可以為用戶提供針對GIS解決方案的定制應(yīng)用 可編輯 ArcGISEngine簡介 ArcGISEngine可以在沒有安裝任何ArcGIS桌面軟件的環(huán)境下提供所有GIS功能 是一組設(shè)定良好的跨平臺 跨語言部件 它可以運行在Windows UNIX和Linux平臺上 并支持C VB NET Java等一系列應(yīng)用軟件開發(fā)環(huán)境 ArcGISEngine提供各種控件 對象和工具 支持?jǐn)U展模塊GeoDatabase編輯 Raster和3D分析和可視化功能 提供多種開放的API函數(shù) 具有跨平臺的特性 ArcGISEngine能做什么 ArcGISEngine與ArcObjects ArcObjects是ESRI提供的一種集成的面向?qū)ο蟮牡乩頂?shù)據(jù)模型的軟件組件庫 它提供了ArcGIS中全部的功能 是開發(fā)GIS應(yīng)用程序的基礎(chǔ) ArcObjects不是一種獨立的商業(yè)軟件 而是依附在ArcGISDesktop產(chǎn)品中的軟件開發(fā)包 使用ArcObjects開發(fā)的應(yīng)用系統(tǒng)不能脫離ArcGISDesktop桌面環(huán)境單獨運行 ArcGISEngine可以在沒有安裝任何ArcGIS桌面軟件的環(huán)境下提供所有GIS功能 是一組設(shè)定良好的跨平臺 跨語言部件 AE與AO AO版本包括了所有的類庫 其中包括ArcMap ArcMapUI ArcCatalog ArcCatalogUI等組件庫 這些組件庫必須在安裝了桌面版軟件后才能使用 出于產(chǎn)品策略上的考慮 ESRI將AO中的某些組件集單獨封裝出來 起名為AE 使用AE開發(fā)的軟件需要在一個RUNTIME下運行 而不需要安裝ArcGIS軟件 AE只是AO的一個子集 使用AE開發(fā)的軟件 在AO環(huán)境中使用沒有問題 但是使用AO開發(fā)的程序 如果使用的組件庫不被包含在AE中 就無法使用 AO提供的控件只有MapControl和PageLayoutControl兩個 而AE的控件就豐富得多 ArcGISEngine組成 ArcGISEngineDeveloperKits開發(fā) 創(chuàng)建自定義的GIS和制圖應(yīng)用的工具包ArcGISEngineRuntime部署 ArcGISEngine應(yīng)用程序的運行環(huán)境 AE組成 ArcGISEngine安裝 ArcGISEngine授權(quán) ecp文件 第二部分 ArcGISEngine體系結(jié)構(gòu) 主要類庫 System庫 System庫是ArcGIS結(jié)構(gòu)中最低級的對象庫 該類庫包含的組件為組成ArcGIS的所有其它類庫提供服務(wù) SystemUI庫 包含了能夠擴展的用戶接口組件的接口定義 包括 ICommand ITool IToolControl接口 開發(fā)者可以使用這些接口擴展UI組件 Geometry庫 處理存儲在要素類或者是其他圖形元素中的幾何對象 形狀 要素等 主要類庫 Display類庫 包含了用于顯示GIS數(shù)據(jù)的對象 包括了能夠負(fù)責(zé)圖像輸出的顯示對象 還包括了控制實體顯示屬性的符號和顏色的對象 Output類庫 包含了生成輸出所必需的對象 通常是從地圖或頁面布局輸出到打印機 繪圖儀 或?qū)С龅轿募?GeoDatabase類庫 包含了所有與數(shù)據(jù)訪問相關(guān)的定義的類型 Carto庫 包含了用于顯示數(shù)據(jù)的對象 對象模型圖 1500多個類 分成多個邏輯子集 1600多個接口對象模型圖有什么用 這個類支持哪些接口 要完成某項工作需要用到哪些對象 如何引用這個類的一個對象 AE對象模型圖 OMD 不能實例化 可以實例化New對象 不能直接New對象 但可作為另一個類的屬性或?qū)ο髞韺嵗?OMD類型之間的關(guān)系 關(guān)聯(lián) 表示類之間存在關(guān)聯(lián)繼承 表示子類繼承了父類共享的方法和屬性 此外子類有其自己的方法和屬性實例化 就是一個類有一個方法可以申請一個對象組合模式 代表整體與部分的關(guān)系 Interface說明 屬性 只讀 只寫 讀寫 方法 函數(shù) 引用傳遞 獲取 FindLibrary C ProgramFiles ArcGIS DeveloperKit Tools LibraryLocator exe程序 ArcGIS快捷方式AEHelp 第三部分 ArcGISEngine開發(fā) AE應(yīng)用程序開發(fā)過程 設(shè)計或準(zhǔn)備好數(shù)據(jù)創(chuàng)建應(yīng)用程序 不同語言 執(zhí)行軟件授權(quán)代碼編寫應(yīng)用程序功能部署發(fā)布 命名空間 ArcGISEngine控件 封裝了10種控件 MapControl MapControl 在MapControl中 其功能屬性可以通過它的General Map Color和Picture等PropertyPages來快速地修改 而無需編寫代碼 在MapControl中可以以這種可視化的形式來設(shè)計控件本身及其內(nèi)容的屬性 使用起來更為方便 提高開發(fā)人員的開發(fā)效率 PageLayoutControl PageLayoutControl MapControl和PageLayoutControl MapControl控件和PageLayoutControl控件對應(yīng)于ArcMap應(yīng)用的 data 和 layout MapControl控件封裝了Map對象 PageLayoutControl控件封裝了 PageLayout 對象 通過ArcMap制作的map文檔可以被加載到MapControl控件和PageLayoutControl控件中 這樣可以節(jié)省組成圖形的開發(fā)時間 ArcGISEngine3D控件 ArcGISEngine提供兩種用于三維顯示的空間容器 SceneControlGlobeControl在這些控件中動態(tài)加載矢量數(shù)據(jù) DOM和DEM數(shù)據(jù) 即可生成豐富的三維場景 SceneControl控件 SceneControl控件是與ArcScene桌面應(yīng)用的3維視圖相對應(yīng)的 SceneControl控件封裝了SceneViewer對象 SceneControl SceneControl Scene相關(guān)接口 Scene組件類是一個矢量 柵格和圖形數(shù)據(jù)顯示與處理的容器 SceneGraph組件類是一個記錄在Scene中出現(xiàn)的數(shù)據(jù)和事件的容器 GlobeControl控件 GlobeControl控件是與ArcGlobe桌面應(yīng)用的3維視圖相對應(yīng)的 GlobeControl控件封裝了GlobeViewer對象 GlobeControl控件 GlobeControl命令 Scene和Globe 工具集 Scene Globe 標(biāo)準(zhǔn) 三維控件 GlobeControl控件和SceneControl控件都加強了三維導(dǎo)航的能力 允許用戶在3維視圖中移動和進(jìn)行3維數(shù)據(jù)的可視化顯示 而不需要使用現(xiàn)有的控件命令和定制命令 為了使用這些加強的導(dǎo)航能力 必須通過屬性頁或者是編程實現(xiàn)Navigate屬性 用戶可以使用鼠標(biāo)左鍵進(jìn)行3維顯示的前后左右移動導(dǎo)航 使用右鍵實現(xiàn)視圖的放大縮小 框架控件 TOCControl TOCControl可以作為伙伴控件使用 這些伙伴控件可能是MapControl PageLayoutControl SceneControl GlobeControl或ReaderControl 這種伙伴控件可以在設(shè)計時通過TOCControl控件的屬性頁來設(shè)置 也可以在編程時通過方法SetBuddyControl來設(shè)置 TOCControl使用伙伴控件來顯示一個樹狀的視圖 包括圖層和符號內(nèi)容 并且保持它的內(nèi)容與伙伴控件同步 ToolbarControl ToolbarControl控件也可以作為伙伴控件使用 它的伙伴控件可能是MapControl PageLayoutControl SceneControl GlobeControl或ReaderControl 這種伙伴控件可以在設(shè)計時通過ToolbarControl控件的屬性頁來設(shè)置 或者是在編程時通過使用SetBuddyControl方法來設(shè)置 ToolbarControl控件具有一組命令 工具 工具控件 以及可以和伙伴控件的顯示情況相聯(lián)系的菜單 LicenseControl 應(yīng)用程序授權(quán)代碼初始化也可 地圖加載 屬性頁設(shè)置代碼加載 IfAxMapControl CheckMxFile sFileName Then 文件有效性檢驗AxMapControl LoadMxFile sFileName EndIf 地圖文檔操作 保存地圖文件 DimpMxdConAsIMxdContentspMxdCon pMapControl Map 創(chuàng)建新的地圖文檔DimpMapDocumentAsIMapDocument 地圖文件接口pMapDocument NewMapDocumentpMapDocument New sFilePath pMapDocument ReplaceContents pMxdCon 圖層操作 地圖圖層類型 GeoDatabase 工具和命令 包括100多種工具和命令 ICommand ITool開發(fā) 由模板類生成 二者區(qū)別 對應(yīng)控件 類入口 參數(shù)傳遞hook 圖標(biāo)和光標(biāo)設(shè)置IHookHelper能獲取哪些對象基本屬性和方法外的其他屬性和方法 Enabled Deactivate OnDblClick 如何調(diào)用 EngineToolbar 自定義 ICommand ITool中MapControl獲取 Privatem pMapControlAsIMapControl3PublicOverridesSubOnCreate ByValhookAsObject If m hookHelperIsNothing Thenm hookHelper NewHookHelperClassIfNothookIsNothingThenm hookHelper Hook hookEndIfIfTypeOfm hookHelper HookIsIToolbarControlThenm pMapControl CType CType m hookHelper Hook IToolbarControl Buddy IMapControl3 ElseIfTypeOfm hookHelper HookIsIMapControl3Thenm pMapControl CType m hookHelper Hook IMapControl3 EndIfEndSub 自定義調(diào)用 Menu Button Command調(diào)用 DimclsNextExtentAsclsGoToNextExtentclsNextExtent NewclsGoToNextExtentclsNextExtent OnCreate Me MapControl Object clsNextExtent OnClick Tool調(diào)用 DimclsBufferAsclsBufferToolclsBuffer NewclsBufferToolclsBuffer OnCreate Me MapControl Object Me MapControl CurrentTool clsBuffer 鷹眼圖功能實現(xiàn) 鷹眼圖數(shù)據(jù) Mxd Layer 視圖范圍聯(lián)動 事件 當(dāng)前視圖范圍標(biāo)記 Geometry庫 點和點群 點是最基本的幾何形體 利用IGeometryCollection或IPointCollection接口 任何類型的集合形體都可以由點的集合構(gòu)成 DimpPointAsIPointpPoint NewPointpPoint X 300pPoint Y 450DimpMultiPtsAsIPointCollectionSetpMultiPts NewMultiPointpMultiPts AddPointpPoint Feature和Geometry Feature的Shape屬性返回要素幾何形體 Shape的Evenlope屬性返回一個形體的最小外接矩形 這個屬性只讀 Mapcontrol Extent pFeature Shape Envelope Display庫 地圖提示 當(dāng)鼠標(biāo)放到要素上時會顯示相應(yīng)的內(nèi)容 DimpLayerAsILayerpLayer Me AxMapControl Map Layer 0 pLayer ShowTips TrueAxMapControl ShowMapTips True 地圖標(biāo)注 DimpLayerAsILayerpLayer Me AxMapControl Map Layer 0 DimpFeatLayerAsIFeatureLayerpFeatLayer pLayer pFeatLayer DisplayFieldDimpGeoFeatLayerAsIGeoFeatureLayerpGeoFeatLayer pFeatLayerpGeoFeatLayer DisplayAnnotation true 地圖刷新AxMapControl ActiveView PartialRefresh 空間數(shù)據(jù)選擇 IMap SelectByShapeISpatialFilterIFeatureSelection SelectFeatures 空間數(shù)據(jù)查詢 屬性查空間要素空間查詢屬性 Identify功能演示 DimpQueryFilterAsIQueryFilterpQueryFilter NewQueryFilter pQueryFilter SubFields pQueryFilter WhereClause FID 5 pFeatCursor pFeatCls Search pQueryFilter False DimpSpatialFilterAsISpatialFilterpSpatialFilter NewSpatialFilterpSpatialFilter Geometry pGeometrypSpatialFilter SpatialRel esriSpatialRelEnum esriSpatialRelIntersectspFeatCursor pFeatureClass Search pSpatialFilter false pFeature pFeatCursor NextFeaturepFeature F

溫馨提示

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

評論

0/150

提交評論