資源描述:
《GIS設(shè)計(jì)-GIS設(shè)計(jì)與開(kāi)發(fā)07122902_周嫻.docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、成績(jī)中國(guó)礦業(yè)大學(xué)2012級(jí)1班實(shí)驗(yàn)報(bào)告課程名稱(chēng)GIS設(shè)計(jì)與開(kāi)發(fā)上機(jī)時(shí)間2015年6月18日學(xué)生姓名周嫻學(xué)號(hào)任課教師張海榮中國(guó)礦業(yè)大學(xué)環(huán)境與測(cè)繪學(xué)院基于ArcObjects組件的常用GIS功能實(shí)現(xiàn)【上機(jī)目的】熟悉VisualStudio開(kāi)發(fā)環(huán)境,掌握ArcGISEngine的組件式開(kāi)發(fā)方式,掌握GIS基本功能的開(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)、保存、地圖縮放/漫游,屬性查詢(xún),空間查詢(xún),建立并訪問(wèn)地理空間數(shù)據(jù)庫(kù),TOC控件的右鍵菜單,添加shap
2、e數(shù)據(jù),柵格數(shù)據(jù)等?!旧蠙C(jī)要求】1.完成代碼的編寫(xiě)工作,通過(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)真、按時(shí)完成實(shí)驗(yàn)報(bào)告。代碼編寫(xiě)過(guò)程中,同時(shí)思考以下問(wèn)題:(1)數(shù)據(jù)源如何被加載訪問(wèn)的?ArcGIS數(shù)據(jù)組織方式?(2)ArcGISEngine開(kāi)發(fā)中所涉及的面向?qū)ο笾R(shí)中諸如類(lèi),繼承,對(duì)象,接口等如何表達(dá)的?【詳細(xì)步驟】實(shí)驗(yàn)一使用控件創(chuàng)建第一個(gè)桌
3、面應(yīng)用程序圖一:打開(kāi)新建一個(gè)Windows窗體應(yīng)用程序(文件—新建—項(xiàng)目—Windows窗體應(yīng)用程序)圖二:拖動(dòng)工具箱容器里的Panel控件至窗體,右鍵調(diào)整Dock為T(mén)op;圖三:拖動(dòng)分欄控件SplitContainer至下方,調(diào)整Dock屬性為Fill圖四:添加TOC,Map,Toolbar,License控件至窗體,調(diào)整Dock屬性圖五:添加地圖文檔(Map控件—右鍵—屬性)圖六:Toolbar控件與Map控件的關(guān)聯(lián)(設(shè)置Buddy屬性)圖七:TOC控件與Map控件的關(guān)聯(lián)(設(shè)置Buddy屬性)圖八:添加工具命令(Toolbar控件—右鍵—屬性—Items
4、選項(xiàng))圖九:在“標(biāo)準(zhǔn)”工具條中點(diǎn)擊啟動(dòng)調(diào)試按鈕,運(yùn)行程序,發(fā)現(xiàn)錯(cuò)誤圖十:添加語(yǔ)句至使用AO對(duì)象的前面圖十一:運(yùn)行成功實(shí)驗(yàn)二地圖打開(kāi)與保存圖一:從工具箱把MenuStrip放到panell,并新建菜單“打開(kāi)Mxd”,并將name修改為openMxd圖二:在屬性對(duì)話框中單擊事件按鈕,打開(kāi)OpenMxd的Click選項(xiàng),雙擊,建立OpenMxd的Click事件的委托處理函數(shù)圖三:新建菜單“保存Mxd”,在屬性對(duì)話框中單擊事件按鈕,修改名稱(chēng)圖四:在Click選項(xiàng)中雙擊,建立SaveMxd的Click事件的委托處理函數(shù)圖五:運(yùn)行成功實(shí)驗(yàn)三縮放與漫游圖一:在菜單欄添加放
5、大菜單,命名為ZoomIn。添加縮小,漫游,全圖菜單,分別命名為ZoomOut,Pan,Extene圖二:ZoomIn,ZoomOut,Pan,Extene的鼠標(biāo)單擊委托處理如上圖三:添加axMapControl的OnMouseDown事件處理函數(shù),添加代碼如上圖四:Pan可以拖動(dòng)地圖如圖圖五:FullExtene可以使地圖全屏,回到正中間圖六:放大地圖某一區(qū)域如圖圖七:縮小某一區(qū)域地圖如圖實(shí)驗(yàn)四屬性查詢(xún)圖一:菜單欄中添加屬性查詢(xún),Name修改為AttributeQuery,雙擊添加Click事件處理函數(shù)圖二:在工程項(xiàng)目右擊,添加Windows窗體,Name
6、改為AttributeQueryResult,Text改為屬性查詢(xún)結(jié)果圖三:從工具箱的Data項(xiàng)添加datagridview,設(shè)置Dock為Fill圖四:在類(lèi)中添加代碼圖五:在AttributeQuery_Click中添加代碼圖六:運(yùn)行結(jié)果如圖實(shí)驗(yàn)五:空間查詢(xún)圖一:點(diǎn)選,矩形選擇改名并且添加代碼圖二:在axMapControl1_OnMouseDown里添加代碼實(shí)驗(yàn)六:建立地理空間數(shù)據(jù)庫(kù)圖一:打開(kāi)ArcCatalog,新建文件夾連接到要?jiǎng)?chuàng)建PersonalGeodatabase的文件夾下面,新建PersonalGeodatabase,并重命名圖二:導(dǎo)入sha
7、pe數(shù)據(jù)圖三:在GP導(dǎo)入數(shù)據(jù)成功后,一個(gè)個(gè)人空間數(shù)據(jù)庫(kù)就建好了圖四:在工程項(xiàng)目中添加ESRI.ArcGIS.DataSourceGDB,ESRI.ArcGIS.Geodatabase,ESRI.ArcGIS.Display的引用圖五:在菜單欄添加打開(kāi)mdb數(shù)據(jù)庫(kù)的菜單圖六:在Click事件處理委托函數(shù)中添加代碼圖七:運(yùn)行結(jié)果如圖實(shí)驗(yàn)七:TOC控件右鍵菜單(ContextMenu)添加右鍵菜單“打開(kāi)屬性表”,在TOC控件鼠標(biāo)MouseDown事件彈出菜單,在單擊“打開(kāi)屬性表”后,將該圖層的屬性表在新的Form窗體中顯示(同屬性查詢(xún))。這里我們只關(guān)注顯示右鍵菜單
8、。圖一:從工具箱的菜單項(xiàng)拖動(dòng)ContextMenuS