版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄 TOC o 1-3 h z u HYPERLINK l _Toc286709573 1 簡(jiǎn)介 PAGEREF _Toc286709573 h 2 HYPERLINK l _Toc286709574 1.1 ArcGIS 9概述 PAGEREF _Toc286709574 h 2 HYPERLINK l _Toc286709575 1.2 讀者定位及預(yù)期效果 PAGEREF _Toc286709575 h 3 HYPERLINK l _Toc286709576 1.3 ArcGIS Engine PAGEREF _Toc286709576 h 4的特點(diǎn) HYPERLINK l _Toc28
2、6709577 1.4ArcGIS引擎組件 PAGEREF _Toc286709577 h 4 HYPERLINK l _Toc286709578 2 軟件安裝 PAGEREF _Toc286709578 h 6 HYPERLINK l _Toc286709579 2.1 安裝前的準(zhǔn)備 PAGEREF _Toc286709579 h 6 HYPERLINK l _Toc286709580 2.2 安裝Visual Studio 2005 PAGEREF _Toc286709580 h 6 HYPERLINK l _Toc286709581 2.3 安裝ArcGIS Engine Runtime
3、9.3 PAGEREF _Toc286709581 h 11 HYPERLINK l _Toc286709582 2.4 安裝 ArcGIS Engine Developer Kit For Microsoft .NET Framework 9.3 PAGEREF _Toc286709582 h 15 HYPERLINK l _Toc286709583 2.5 ArcGIS Engine Developer Kit PAGEREF _Toc286709583 h 18的授權(quán)介紹ArcGIS 9 概述ArcGIS 為用戶提供了一整套強(qiáng)大的 GIS 框架。本文將重點(diǎn)介紹如何使用 ArcGIS En
4、gine 快速構(gòu)建和發(fā)布自定義 GIS 應(yīng)用程序。對(duì)于需要在應(yīng)用系統(tǒng)中添加地理信息功能的用戶來說,ArcGIS Engine 是一個(gè)非常不錯(cuò)的選擇。在 ArcGIS 9 系列產(chǎn)品中,ArcGIS Desktop、ArcGIS Engine 和 ArcGIS Server 都是基于核心組件庫(kù) ArcObjects 構(gòu)建的。ArcObjects組件庫(kù)有3000多個(gè)對(duì)象供開發(fā)者調(diào)用,包括細(xì)粒度的小對(duì)象,如Geometry對(duì)象;以及粗粒度的大對(duì)象,如Map對(duì)象,開發(fā)者可以通過這些對(duì)象對(duì)文檔(mxd、3dd、sxd等)進(jìn)行操作和控制,并與空間數(shù)據(jù)庫(kù)進(jìn)行交互。 ArcObjects 組件庫(kù)為開發(fā)者集成了大
5、量的 GIS 功能,可以快速幫助開發(fā)者開發(fā) GIS 項(xiàng)目。由于ArcGIS Desktop、ArcGIS Engine、ArcGIS Server都是基于ArcObjects構(gòu)建的應(yīng)用程序,所以ArcObjects的開發(fā)經(jīng)驗(yàn)對(duì)于這三個(gè)產(chǎn)品的開發(fā)者來說是通用的。開發(fā)者可以通過ArcObjects擴(kuò)展ArcGIS Desktop,定制ArcGIS Engine應(yīng)用,使用ArcGIS Server實(shí)現(xiàn)企業(yè)級(jí)GIS應(yīng)用。 ArcGIS 可以在各種編程環(huán)境中開發(fā),包括:C+、支持 COM 的編程語(yǔ)言、.NET、Java 等。ArcGIS Desktop 的開發(fā)工具包 (SDK) 包含在 ArcView、
6、ArcEditor 和 ArcInfo 中,支持 COM 和 .NET 開發(fā)。用戶可以應(yīng)用ArcGIS Desktop SDK來擴(kuò)展ArcGIS Desktop的功能,例如添加一些新工具、自定義用戶界面、添加新的擴(kuò)展模塊等。ArcGIS Server 實(shí)現(xiàn)了一組標(biāo)準(zhǔn)的 Web GIS 服務(wù)(例如:制圖、訪問數(shù)據(jù)、地理編碼等)以支持企業(yè)級(jí)應(yīng)用程序。 ArcGIS Server SDK 使開發(fā)人員能夠構(gòu)建集中式 GIS 服務(wù)器來實(shí)現(xiàn) GIS 功能、發(fā)布基于 Web 的 GIS 應(yīng)用程序以及執(zhí)行分布式 GIS 操作。2004年,美國(guó)ESRI發(fā)布了ArcGIS Engine。 ArcGIS Engin
7、e 開發(fā)工具包提供了一系列可在 ArcGIS Desktop 框架之外使用的 GIS 組件。 ArcGIS Engine的出現(xiàn)對(duì)于需要使用ArcObjects的開發(fā)者來說是一個(gè)福音,因?yàn)樵贏rcGIS Engine發(fā)布之前,基于ArcObjects的開發(fā)只能在龐大的ArcGIS Desktop框架下進(jìn)行。學(xué)習(xí)定位和預(yù)期結(jié)果此信息旨在供以下用戶閱讀:使用 ArcGIS Desktop 的經(jīng)驗(yàn),使用了 ArcGIS 的幾種數(shù)據(jù)格式,對(duì)ArcGIS空間數(shù)據(jù)組織有一定的了解。初步了解 ArcGIS Desktop 的制圖表示。了解 C# 編程語(yǔ)言。通過閱讀本學(xué)習(xí)資料,用戶可以快速了解ArcGIS En
8、gine的組成部分,了解ArcGIS Engine可以完成哪些任務(wù),掌握如何搭建ArcGIS Engine開發(fā)環(huán)境,開發(fā)典型的GIS應(yīng)用,獲得解決問題的方法。對(duì)用戶進(jìn)一步深入開發(fā)指導(dǎo),提供深度學(xué)習(xí)方法和渠道。ArcGIS Engine 的特點(diǎn)開發(fā)者可以使用ArcGIS Engine開發(fā)包實(shí)現(xiàn)以下功能:分層顯示專題地圖,如道路、河流、行政邊界等。瀏覽和縮放地圖在地圖上查看有關(guān)要素的信息在地圖上搜索和查找要素在地圖上顯示文本注釋在地圖上疊加衛(wèi)星或航空?qǐng)D像在地圖上繪制點(diǎn)、線、多邊形幾何按矩形、圓形或多邊形選擇地圖上的要素通過 SQL 語(yǔ)句查找特征使用各種渲染方式繪制地圖圖層,如:層次渲染、直方圖渲染
9、、點(diǎn)密度渲染、比例渲染等。動(dòng)態(tài)繪制實(shí)時(shí)數(shù)據(jù),例如實(shí)時(shí) GPS 坐標(biāo)。變換空間數(shù)據(jù)的坐標(biāo)系。ArcGIS Engine 的授權(quán)文件 (*.ecp) 控制用戶可以使用哪些功能。能否使用 ArcGIS Engine 功能取決于用戶自己的授權(quán)文件。編輯空間數(shù)據(jù)。 ArcGIS Engine 開發(fā)工具包使用戶能夠在地理數(shù)據(jù)庫(kù)或 shapefile 中創(chuàng)建、修改或刪除矢量要素。標(biāo)準(zhǔn) ArcGIS Engine 運(yùn)行時(shí)可以編輯 Shapefile 和簡(jiǎn)單的個(gè)人地理數(shù)據(jù)庫(kù)功能。如果您需要編輯企業(yè)級(jí)地理數(shù)據(jù)庫(kù)數(shù)據(jù),則需要使用地理數(shù)據(jù)庫(kù)更新擴(kuò)展。空間建模與分析。 ArcGIS Engine 空間擴(kuò)展模型提供了強(qiáng)大
10、的空間建模和空間分析功能。用戶可以創(chuàng)建、查詢、分析柵格數(shù)據(jù),進(jìn)行綜合的柵格和矢量分析,并從柵格數(shù)據(jù)中提取各種信息。ArcGIS Engine 的組件ArcGIS Engine 由軟件開發(fā)工具包 (SDK) 和運(yùn)行時(shí) (Runtime) 組成。ArcGIS Engine從功能層面可以分為以下五個(gè)部分:1、基礎(chǔ)服務(wù)由GIS核心ArcObjects組成,幾乎所有GIS應(yīng)用都需要,如要素幾何、顯示等。2. 數(shù)據(jù)訪問ArcGIS Engine 可以訪問許多柵格和矢量格式,包括強(qiáng)大的地理數(shù)據(jù)庫(kù)。3. 地圖表示創(chuàng)建和顯示帶有符號(hào)和標(biāo)簽的地圖。4. 開發(fā)組件用于快速應(yīng)用程序開發(fā)的接口控件。5. 運(yùn)行時(shí)選項(xiàng)Ar
11、cGIS Engine 運(yùn)行時(shí)可以使用標(biāo)準(zhǔn)功能或其他高級(jí)功能進(jìn)行部署。ArcGIS Engine Developer Kit是一款基于組件的開發(fā)產(chǎn)品,主要面向開發(fā)者,提供與開發(fā)環(huán)境的集成、開發(fā)輔助、類庫(kù)對(duì)象模型圖、代碼示例等。ArcGIS Engine 的另一個(gè)組件是它的運(yùn)行時(shí)。使用 ArcGIS Engine 開發(fā)工具包構(gòu)建的所有應(yīng)用程序在運(yùn)行時(shí)都需要適當(dāng)級(jí)別的 ArcGIS Engine 運(yùn)行時(shí)。ArcGIS Engine 運(yùn)行時(shí)有多個(gè)版本級(jí)別,從標(biāo)準(zhǔn)版一直到企業(yè)版。標(biāo)準(zhǔn)引擎運(yùn)行時(shí)提供所有 ArcGIS 應(yīng)用程序的核心功能。此級(jí)別的 ArcGIS Engine 運(yùn)行時(shí)可以處理多種不同的柵格
12、和矢量格式、地圖表示,并創(chuàng)建要素以通過執(zhí)行各種空間或?qū)傩圆樵儊聿檎乙亍4思?jí)別的 ArcGIS Engine 運(yùn)行時(shí)還可以執(zhí)行基本數(shù)據(jù)創(chuàng)建、編輯 Shapefile 以及簡(jiǎn)單的個(gè)人地理數(shù)據(jù)庫(kù)和 GIS 分析。編輯企業(yè)地理數(shù)據(jù)庫(kù)擴(kuò)展。 ArcGIS Engine 運(yùn)行時(shí)企業(yè)級(jí)地理數(shù)據(jù)庫(kù)編輯器增加了創(chuàng)建和更新多用戶企業(yè)級(jí)地理數(shù)據(jù)庫(kù)的功能。 ArcGIS Engine的其他擴(kuò)展包括:Spatial Analysis Extension、3D Analysis Extension、Network Analysis、StreetMap Extension等。軟件安裝在開發(fā) ArcGIS Engine 程
13、序之前,需要先部署開發(fā)環(huán)境。本文的ArcGIS Engine開發(fā)示例以C#語(yǔ)言為例。選擇Visual Studio 2005作為C#的集成開發(fā)環(huán)境。 ArcGIS Engine開發(fā)環(huán)境的搭建需要按照以下步驟順序進(jìn)行:安裝 Visual Studio 2005安裝 ArcGIS Engine Runtime9.3為 Microsoft .NET Framework 9.3 安裝 ArcGIS Engine 開發(fā)工具包ArcGIS Engine 開發(fā)工具包具有支持多種開發(fā)語(yǔ)言的開發(fā)工具包。用戶可以使用VB6、VC+、C#、Java等開發(fā)ArcGIS Engine。每種語(yǔ)言都有對(duì)應(yīng)的 ArcGIS
14、Engine Developer Kit 安裝包。本文主要以C#為例。注意:安裝ArcGIS Engine Developer Kit For Microsoft .NET Framework需要操作系統(tǒng)已經(jīng)安裝了.Net Framework 2.0,因?yàn)榘惭b時(shí)ArcGIS Engine Developer Kit For Microsoft .NET Framework會(huì)檢測(cè)本地是否安裝了.Net Framework 2.0 .如果安裝,ArcGIS Engine 的 .Net 類庫(kù)將安裝在系統(tǒng)上。如果沒有檢測(cè)到.Net Framework 2.0,則系統(tǒng)不會(huì)安裝ArcGIS Engine的
15、.Net類庫(kù);具體表現(xiàn)為ArcGIS Engine的安裝目錄下會(huì)有一個(gè)DotNet文件夾。如果該文件夾存在,說明本地系統(tǒng)已經(jīng)安裝了ArcGIS Engine的.Net類庫(kù)。這里我們需要安裝開發(fā)環(huán)境,選擇Visual Studio 2005作為開發(fā)工具,在安裝Visual Studio 2005的過程中會(huì)自動(dòng)安裝.Net Framework 2.0。安裝前的準(zhǔn)備Visual Studio 2005 安裝 CD 或安裝文件。ArcGIS Engine Runtime9.3的安裝光盤或安裝文件。ArcGIS Engine Developer Kit For Microsoft .NET Framew
16、ork 9.3 的安裝 CD 或安裝文件。ArcGIS Engine 開發(fā)工具包的許可文件。安裝 Visual Studio 2005將 Visual Studio 2005 安裝 CD 放入 CD-ROM 驅(qū)動(dòng)器。找到SETUP.EXE文件,雙擊運(yùn)行,點(diǎn)擊“安裝Visual Studio 2005”。在彈出的安裝向?qū)Ы缑妫c(diǎn)擊下一步。勾選“我接受許可協(xié)議中的條款”,然后單擊“下一步”。在左側(cè)面板中選擇“自定義”。默認(rèn)安裝路徑為C:Program FilesMicrosoft Visual Studio 8。如果需要修改安裝路徑,點(diǎn)擊“瀏覽”,最后點(diǎn)擊“下一步”。為了加快安裝速度和節(jié)省磁盤空間
17、,可以去掉Visual C+、Visual J+和Microsoft SQL Server 2005 Express前面的勾,點(diǎn)擊“安裝”。安裝程序開始安裝組件,請(qǐng)耐心等待幾分鐘。單擊“完成”。點(diǎn)擊“退出”。至此 Visual Studio 2005 安裝完成。安裝 ArcGIS Engine Runtime9.3如果在安裝 Visual Studio 2005 后直接安裝 ArcGIS Engine Developer Kit,系統(tǒng)會(huì)提示您先安裝 ArcGIS Engine Runtime 9.3 或 ArcGIS Desktop 9.3。讓我們開始安裝 ArcGIS Engine Runt
18、ime 9.3。將 ArcGIS Engine Runtime 9.3 安裝光盤放入光驅(qū),或者找到安裝文件。找到Setup.exe文件,雙擊運(yùn)行,在彈出的對(duì)話框中點(diǎn)擊“下一步”。勾選“我接受許可協(xié)議”,然后單擊“下一步”。點(diǎn)擊下一步”。ArcGIS Engine Runtime 默認(rèn)安裝在 C:Program FilesArcGIS 路徑下。如果您需要更改安裝路徑,請(qǐng)單擊“瀏覽”并選擇安裝文件夾。點(diǎn)擊下一步”。ArcGIS程序需要使用Python,默認(rèn)安裝在C:Python24路徑下。如果您需要更改安裝路徑,請(qǐng)單擊“瀏覽”并選擇安裝文件夾。點(diǎn)擊下一步”。點(diǎn)擊下一步”。安裝程序開始安裝,請(qǐng)耐心等
19、待幾分鐘。安裝完成后,點(diǎn)擊“完成”。為 Microsoft .NET Framework 9.3 安裝 ArcGIS Engine 開發(fā)工具包將 ArcGIS Engine Developer Kit For Microsoft .NET Framework 9.3 安裝 CD 放入 CD-ROM 驅(qū)動(dòng)器。雙擊 ESRI.exe,然后在對(duì)話框中單擊“ArcGIS Engine Developer Kit For Microsoft .NET Framework”。點(diǎn)擊下一步”。勾選“我接受許可協(xié)議”;點(diǎn)擊下一步”。安裝程序會(huì)安裝一些本地開發(fā)文檔、代碼示例、一些小工具、Visual Studio
20、2005模板等,點(diǎn)擊“下一步”。點(diǎn)擊下一步”。安裝程序開始安裝。單擊“完成”。已安裝 ArcGIS Engine SDK for Microsoft .Net Framework。將彈出一個(gè)對(duì)話框,開始注冊(cè) ArcGIS Engine SDK。ArcGIS Engine 開發(fā)工具包的許可繼續(xù)上面的安裝,點(diǎn)擊“Finish”按鈕后,出現(xiàn)如下界面,點(diǎn)擊“Register Now”在注冊(cè)選項(xiàng)中,選擇以下使用授權(quán)文件進(jìn)行注冊(cè),點(diǎn)擊“下一步”單擊“瀏覽”。在“打開文件”對(duì)話框中,瀏覽到授權(quán)文件所在的文件夾,選擇授權(quán)文件,授權(quán)文件的擴(kuò)展名通常為*.ecp,點(diǎn)擊“打開”。點(diǎn)擊下一步”。點(diǎn)擊“完成”,ArcG
21、IS Engine Developer Kit授權(quán)完成使用 2D 控件ArcGIS Engine 9.3 提供了一些非常強(qiáng)大的控件來幫助開發(fā)者快速開發(fā)自己的 GIS 應(yīng)用程序,例如:地圖控制頁(yè)面布局控件場(chǎng)景控制地球控制工具欄控件TOC控制SymbologyControl(9.3 版中的新功能)許可證控制本章以示例程序?yàn)槔?,講解如何使用 ArcGIS Engine 開發(fā) GIS 應(yīng)用程序。本例主要練習(xí)有:如何使用 MapControl、ToolbarControl、TOCControl,如何將 ArcGIS Engine 設(shè)置的工具和命令添加到工具欄,如何瀏覽 mxd 地圖文檔,如何將 shap
22、efile 文件添加到地圖控件,如何添加通過 lyr 文件層,如何讀取要素類的屬性信息并在網(wǎng)格控件中顯示。地圖瀏覽本示例不編寫任何代碼創(chuàng)建一個(gè)地圖瀏覽小程序,可以打開mxd地圖文檔、縮放、漫游地圖、點(diǎn)擊查詢屬性等。從開始菜單啟動(dòng)Visual Studio 2005,啟動(dòng)畫面如下。從菜單“文件”-“新建”中選擇項(xiàng)目。從此步驟創(chuàng)建一個(gè) C# 項(xiàng)目。在彈出的新建項(xiàng)目對(duì)話框中,首先選擇Visual C#,然后在模板中選擇Windows應(yīng)用程序,將項(xiàng)目命名為“MapViewer”,然后點(diǎn)擊瀏覽按鈕指定存放項(xiàng)目文件的路徑,本例為放入“C:src”文件夾,點(diǎn)擊“確定”。創(chuàng)建 MapViewer 項(xiàng)目后,該項(xiàng)
23、目會(huì)自動(dòng)創(chuàng)建一個(gè)名為 Form1 的表單。示例如下。右鍵單擊表單并選擇屬性。在右側(cè)的屬性列表中找到“Text”屬性,輸入“MapViewer”。表單的標(biāo)題更改為 MapViewer。拖動(dòng)表格右下角使表格變大,點(diǎn)擊左側(cè)“工具箱”在彈出的工具箱中找到“ArcGIS Windows Forms”選項(xiàng)卡,點(diǎn)擊選項(xiàng)卡前面的加號(hào),展開選項(xiàng)卡,依次雙擊“ToolBarControl”“TOCControl”“MapControl”“LicenseControl”。用鼠標(biāo)拖動(dòng)Form1窗體界面上的各個(gè)控件,使各個(gè)控件如下圖所示。選擇ToolBarControl控件,在屬性窗口中找到Dock屬性,點(diǎn)擊下拉按鈕,
24、選擇Top部分,如下圖。同ToolBarControl的操作,設(shè)置TOCControl和MapControl的Dock屬性分布為L(zhǎng)eft和Fill。設(shè)置完成后,效果如下圖所示。至此,F(xiàn)orm1表單的界面布局設(shè)置就完成了。窗體頂部是工具欄,左側(cè)是圖層列表,主工作區(qū)是地圖控件。右鍵單擊窗體上的 ToolbarControl,然后單擊屬性菜單。在彈出的對(duì)話框中,首先將 Buddy 屬性設(shè)置為 axMapControl1,然后單擊 Items 選項(xiàng)卡。在項(xiàng)目選項(xiàng)卡中,單擊添加按鈕。在左側(cè)的類別中選擇通用,然后雙擊右側(cè)的打開工具。這樣,打開工具就添加到了工具欄中。在左側(cè)依次選擇地圖查詢和地圖導(dǎo)航,在工具
25、欄中添加識(shí)別、放大、縮小等工具。添加完成后,效果如下,點(diǎn)擊確定按鈕。右鍵單擊 LicenseControl,然后單擊屬性菜單。瀏覽已選擇 ArcGIS Engine 的彈出對(duì)話框。如果您需要其他擴(kuò)展模塊的權(quán)限,可以選中右側(cè)相應(yīng)的復(fù)選框,然后單擊“確定”按鈕。右鍵單擊窗體上的 TocControl,然后選擇屬性菜單。將 Buddy 屬性設(shè)置為 axMapControl1。單擊確定按鈕。在“調(diào)試”菜單中,單擊“開始調(diào)試”菜單以運(yùn)行程序。程序運(yùn)行界面如下。單擊工具欄上的第一個(gè)按鈕。在彈出的對(duì)話框中瀏覽到一個(gè) mxd 文檔,然后單擊打開按鈕。地圖文檔中包含的圖層被加載到地圖控件和圖層列表控件中。單擊工
26、具欄上的識(shí)別工具,用鼠標(biāo)點(diǎn)擊地圖上的某個(gè)要素,彈出的識(shí)別對(duì)話框顯示被點(diǎn)擊要素的屬性信息。添加 shp 數(shù)據(jù)。就在 3.1 節(jié)中,我們?cè)诓痪帉懘a的情況下生成了一個(gè)地圖瀏覽小程序。讓我們使用代碼添加數(shù)據(jù)。在VS2005工具箱中,展開菜單和工具欄,雙擊MenuStrip控件,這樣就在窗體中添加了一個(gè)菜單控件。點(diǎn)擊菜單。輸入“Add shp”作為菜單標(biāo)題,輸入“menuAddShp”作為菜單名稱。選擇“添加shp”菜單,點(diǎn)擊屬性框中的事件按鈕,雙擊事件列表中的Click事件。自動(dòng)生成的事件處理方法如下圖所示,我們?cè)诜椒ㄖ休斎胩幚泶a。讓我們開始使用 ArcGIS Engine 進(jìn)行編碼。首先,您需要
27、添加對(duì) ArcGIS 的引用。在解決方案管理器中右鍵單擊“添加引用”。在對(duì)話框中選擇ESRI.ArcGIS.DataSourcesFile、ESRI.ArcGIS.Geodatabase類庫(kù),點(diǎn)擊確定按鈕。在 Form1.cs 源代碼文件中,在源代碼頂部,輸入以下代碼以導(dǎo)入命名空間。使用System.IO;使用ESRI.ArcGIS.DataSourcesFile;使用ESRI.ArcGIS.Geodatabase;使用ESRI.ArcGIS.Carto;將以下代碼添加到菜單的 Click 事件處理程序中。將 shapefile 添加到地圖控件有多種方法,本示例的步驟如下:創(chuàng)建工作區(qū)工廠。打開
28、 shapefile 工作區(qū)。打開要素類。創(chuàng)建要素圖層。關(guān)聯(lián)圖層和要素類。添加到地圖控件。privatevoid menuAddShp_Click (對(duì)象致者, EventArgs e)IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory ();IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile( D:GIS-Data , 0);IFeatureWorkspace pFeatureWorkspace = pWorkspace作為IFeatureWorksp
29、ace ;IFeatureClass pFC = pFeatureWorkspace.OpenFeatureClass( continent.shp );IFeatureLayer pFLayer = new FeatureLayerClass ();pFLayer.FeatureClass = pFC;pFLayer.Name = pFC.AliasName;ILayer pLayer = pFLayer作為ILayer ;IMap pMap = axMapControl1.Map;pMap.AddLayer(pLayer);axMapControl1.ActiveView.Refresh(
30、);注意:上述代碼 pWorkspaceFactory.OpenFromFile(D:GIS-Data, 0) 中的符號(hào)導(dǎo)致轉(zhuǎn)義字符“”被視為普通字符。在鍵盤上按F5,開始調(diào)試,點(diǎn)擊“添加shp”菜單,將continent.shp添加到地圖控件中。目前該功能只能在D:GIS-Data文件夾下添加continent.shp文件。為了讓用戶瀏覽磁盤目錄來加載指定的shp文件。下面做一些改進(jìn)。從工具箱向窗體添加一個(gè) OpenFileDialog 控件。將原來的 Click 事件處理代碼更新為以下代碼:privatevoid menuAddShp_Click (對(duì)象致者, EventArgs e)IW
31、orkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory ();openFileDialog1.Filter = shapefile文件(*.shp)|*.shp ;openFileDialog1.InitialDirectory = D:GIS-Data ;openFileDialog1.Multiselect = false ;DialogResult pDialogResult = openFileDialog1.ShowDialog();if (pDialogResult != DialogResult .OK)
32、返回;字符串pPath = openFileDialog1.FileName;字符串pFolder =路徑.GetDirectoryName(pPath);字符串pFileName =路徑.GetFileName(pPath);IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(pFolder, 0);IFeatureWorkspace pFeatureWorkspace = pWorkspace作為IFeatureWorkspace ;IFeatureClass pFC = pFeatureWorkspace.OpenFeatureC
33、lass(pFileName);IFeatureLayer pFLayer = new FeatureLayerClass ();pFLayer.FeatureClass = pFC;pFLayer.Name = pFC.AliasName;ILayer pLayer = pFLayer作為ILayer ;IMap pMap = axMapControl1.Map;pMap.AddLayer(pLayer);axMapControl1.ActiveView.Refresh();按鍵盤上的F5鍵,運(yùn)行調(diào)試,點(diǎn)擊“添加shp”菜單,在彈出的對(duì)話框中,選擇任意一個(gè)shp文件,點(diǎn)擊確定,將shp文件加
34、載到地圖控件中。通過 lyr 文件添加圖層如何添加 shp 數(shù)據(jù)在 3.2 中已經(jīng)介紹過了。本節(jié)將介紹通過 lyr 文件添加數(shù)據(jù)。 lyr 文件可以是在 ArcMap 中制作的圖層,其中已經(jīng)包含圖層符號(hào)化、標(biāo)注和可見比例等信息。將“Add lyr”菜單添加到菜單,名稱更改為 menuAddLyr。為 menuAddLyr 菜單添加 Click 事件處理程序。添加lyr文件的步驟是通過打開文件對(duì)話框?yàn)g覽到一個(gè)lyr文件,然后通過地圖控件的方法(AddLayerFromFile)直接加載。privatevoid menuAddLyr_Click( object sender, EventArgs
35、e)openFileDialog1.Filter = lyr文件(*.lyr)|*.lyr ;openFileDialog1.InitialDirectory = D:GIS-Data ;openFileDialog1.Multiselect = false ;DialogResult pDialogResult = openFileDialog1.ShowDialog();if (pDialogResult != DialogResult .OK)返回;字符串pFileName = openFileDialog1.FileName;axMapControl1.AddLayerFromFile
36、(pFileName);axMapControl1.ActiveView.Refresh();按 F5 開始調(diào)試。運(yùn)行界面如下,點(diǎn)擊Add lyr菜單。選擇continent.lyr 圖層文件并單擊打開。加載完成后的界面如下圖所示。要素類屬性視圖以上述方式添加菜單“Layer Attributes”,菜單的Name屬性為menuAttributes。添加點(diǎn)擊事件Click事件處理方法如下。該方法當(dāng)前為空,以下步驟將填充代碼。右鍵單擊 MapViewer 項(xiàng)目,現(xiàn)在添加 - Windows 窗體。在“添加選項(xiàng)”對(duì)話框中,選擇 Visual C# 項(xiàng)目項(xiàng),為模板選擇 Windows 窗體,然后輸入 FrmAttributeTable.cs 作為名稱。單擊添加按鈕。DataGridView 控件從工具箱到新窗體。將 DataGridView 的 Dock 屬性設(shè)置為 Fill。右鍵單擊表單并選擇查看代碼。為表單添加“加載”事件處理。自動(dòng)生成的代碼如下所示。在 FrmAttributeTable.cs 源代碼的頂部添加以下三行代碼以導(dǎo)入命名空間。使用ESRI.ArcGIS.Controls;使用ESRI.ArcGIS.Carto;使用ESRI.ArcGIS.Geodatabase;將以下代碼添加到表單類。私有AxMapControl m_MapCt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版杉木林木材市場(chǎng)調(diào)研與買賣預(yù)測(cè)合同3篇
- 二零二五年幼兒園幼兒安全防護(hù)責(zé)任合同2篇
- 2025年度智能家居門窗系統(tǒng)安裝及售后服務(wù)合同范本3篇
- 二零二五版農(nóng)用車租賃管理及技術(shù)支持合同3篇
- 2025年度木工材料采購(gòu)與供應(yīng)合同范本4篇
- 二零二五年礦山轉(zhuǎn)讓協(xié)議及礦產(chǎn)資源開發(fā)運(yùn)營(yíng)合同3篇
- 二零二五年度投資擔(dān)保公司產(chǎn)業(yè)投資基金合同
- 課題申報(bào)參考:明清江南文人居室陳設(shè)藝術(shù)研究
- 2025年度城市地下綜合管廊配電箱柜安全防護(hù)采購(gòu)合同4篇
- 二零二五年度文化創(chuàng)意產(chǎn)業(yè)合作聘請(qǐng)兼職勞務(wù)合同
- 人工智能算法與實(shí)踐-第16章 LSTM神經(jīng)網(wǎng)絡(luò)
- 17個(gè)崗位安全操作規(guī)程手冊(cè)
- 數(shù)學(xué)史簡(jiǎn)介課件可編輯全文
- 2025年山東省濟(jì)南市第一中學(xué)高三下學(xué)期期末統(tǒng)一考試物理試題含解析
- 中學(xué)安全辦2024-2025學(xué)年工作計(jì)劃
- 網(wǎng)絡(luò)安全保障服務(wù)方案(網(wǎng)絡(luò)安全運(yùn)維、重保服務(wù))
- 2024年鄉(xiāng)村振興(產(chǎn)業(yè)、文化、生態(tài))等實(shí)施戰(zhàn)略知識(shí)考試題庫(kù)與答案
- 現(xiàn)代科學(xué)技術(shù)概論智慧樹知到期末考試答案章節(jié)答案2024年成都師范學(xué)院
- 軟件模塊化設(shè)計(jì)與開發(fā)標(biāo)準(zhǔn)與規(guī)范
- 2024年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 有機(jī)農(nóng)業(yè)種植模式
評(píng)論
0/150
提交評(píng)論