資源描述:
《gis設(shè)計(jì)-07122868梁瑩gis實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、成績(jī)中國(guó)礦業(yè)大學(xué)2012級(jí)1班課程實(shí)驗(yàn)報(bào)告考試科目GIS設(shè)計(jì)與開(kāi)發(fā)考試時(shí)間2015年7月1日學(xué)生姓名梁瑩學(xué)號(hào)07122868任課教師張海榮中國(guó)礦業(yè)大學(xué)環(huán)境與測(cè)繪學(xué)院2015年6月目錄【上機(jī)目的】1【上機(jī)內(nèi)容】1【上機(jī)要求】1【詳細(xì)步驟】11使用控件創(chuàng)建第一個(gè)桌面應(yīng)用程序12地圖打開(kāi)與保存33縮放與漫游94屬性查詢135空間查詢166建立地理空間數(shù)據(jù)庫(kù)197添加shape數(shù)據(jù),柵格數(shù)據(jù)238鷹眼圖26【實(shí)習(xí)總結(jié)】28基于ArcObjects組件的常用GIS功能實(shí)現(xiàn)【上機(jī)目的】熟悉VisualStudio開(kāi)發(fā)環(huán)境,掌握ArcGISEngine的組件式開(kāi)發(fā)方式,掌握GIS基本功能
2、的開(kāi)發(fā)方法?!旧蠙C(jī)內(nèi)容】以ArcObjectsfor.NET為開(kāi)發(fā)包,用C#高級(jí)程序設(shè)計(jì)語(yǔ)言二次開(kāi)發(fā)一個(gè)包含GIS基本操作的應(yīng)用程序,實(shí)現(xiàn)地圖文檔的打開(kāi)、保存、地圖縮放/漫游,屬性查詢,空間查詢,建立并訪問(wèn)地理空間數(shù)據(jù)庫(kù),TOC控件的右鍵菜單,添加shape數(shù)據(jù),柵格數(shù)據(jù)等?!旧蠙C(jī)要求】1.完成代碼的編寫工作,通過(guò)對(duì)示例代碼的學(xué)習(xí),把這些分散的代碼相互粘合起來(lái),形成一個(gè)能實(shí)現(xiàn)常用GIS功能的應(yīng)用程序。學(xué)會(huì)VisualStudio2010代碼常用調(diào)試方法,學(xué)會(huì)QueryInterface。2.了解利用ComGIS進(jìn)行應(yīng)用型地理信息系統(tǒng)建設(shè)工作的基本思路。3.獨(dú)立實(shí)驗(yàn),認(rèn)真、按
3、時(shí)完成實(shí)驗(yàn)報(bào)告。代碼編寫過(guò)程中,同時(shí)思考以下問(wèn)題:(1)數(shù)據(jù)源如何被加載訪問(wèn)的?ArcGIS數(shù)據(jù)組織方式是怎樣的?(2)ArcGISEngine開(kāi)發(fā)中所涉及的面向?qū)ο笾R(shí)中諸如類,繼承,對(duì)象,接口等如何表達(dá)的?【詳細(xì)步驟】1使用控件創(chuàng)建第一個(gè)桌面應(yīng)用程序1.1新建項(xiàng)目在開(kāi)始菜單中找到MicrosoftVisualStudio2010(簡(jiǎn)稱VS),打開(kāi)新建一個(gè)Windows窗體應(yīng)用程序(文件--新建--項(xiàng)目--Windows窗體應(yīng)用程序),見(jiàn)圖1.1.1圖1.1.1新建工程1.2添加容器和控件拖動(dòng)工具箱容器里的Panel控件至窗體(默認(rèn)Name為panel1),右鍵屬性調(diào)整D
4、ock為Top;拖動(dòng)分欄控件SplitContainer至panel1下面,調(diào)整Dock屬性為Fill,并添加TOC,Map,Toolbar控件,見(jiàn)圖1.2.1圖1.2.1構(gòu)建模塊1.3添加地圖文檔在Map處右擊,修改其屬性,添加地圖文檔,見(jiàn)圖1.3.1圖1.3.1添加地圖文檔1.4運(yùn)行結(jié)果經(jīng)過(guò)調(diào)試,查看運(yùn)行結(jié)果,見(jiàn)圖1.4.1圖1.4.1運(yùn)行結(jié)果2地圖打開(kāi)與保存2.1添加控件(1)在MicrosoftVisualStudio2010(以下簡(jiǎn)稱VS)中新建工程,設(shè)計(jì)窗體布局,添加控件:AxMapControl即Map地圖控件,AxTOCControl目錄控件,AxToolb
5、arControlGIS工具欄控件,見(jiàn)圖2.1.1圖2.1.1添加控件(1)關(guān)聯(lián)控件,使窗體中添加的三個(gè)控件保持行為一致,即當(dāng)?shù)貓D發(fā)生變化的時(shí)候,其他控件相應(yīng)發(fā)生改變,同時(shí)可以利用其他控件對(duì)地圖進(jìn)行操作,設(shè)置方法見(jiàn)圖2.1.2圖2.1.2控件關(guān)聯(lián)2.2添加事件(1)從工具箱中的菜單和工具欄把MenuStrip工具條拖到panel1里,新建文件菜單,在子菜單里新建“打開(kāi)mxd文檔”項(xiàng),修改屬性Name為OpenMxd,并建立OpenMxd的Click事件的委托處理函數(shù),見(jiàn)圖1.2.1圖2.2.1添加打開(kāi)地圖文檔事件(1)在文件菜單的子菜單里新建“保存mxd文檔”項(xiàng),修改Nam
6、e為SaveMxd,并建立其Click時(shí)間的委托處理函數(shù),見(jiàn)圖2.2.2圖2.2.2添加保存地圖文檔事件2.3設(shè)計(jì)代碼(1)打開(kāi)代碼窗口,為OpenMxd_Click函數(shù)添加代碼,實(shí)現(xiàn)其打開(kāi)地圖文檔的功能,代碼如下:privatevoidOpenMxd_Click(objectsender,EventArgse){OpenFileDialogopenFileDialog=newOpenFileDialog();openFileDialog.Title="打開(kāi)mxd文檔;openFileDialog.Multiselect=false;openFileDialog.Filte
7、r="*.mxd
8、*.mxd";openFileDialog.RestoreDirectory=true;if(openFileDialog.ShowDialog()==DialogResult.OK){try{IMapDocumentmapDocument=newMapDocumentClass();boolisPasswordProtected=mapDocument.get_IsPasswordProtected(openFileDialog.FileName);if(!isPasswordProtected