版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程設(shè)計(jì)報(bào)告姓名:學(xué)號:專業(yè):地理信息系統(tǒng)班級:指導(dǎo)教師:2011年12月2日
一、實(shí)習(xí)目的掌握利用SuperMapObjects+C#來開發(fā)GIS系統(tǒng)。熟練應(yīng)用SuperMap來操作地圖,并對數(shù)據(jù)進(jìn)行處理。掌握SuperMapObjects開發(fā)GIS系統(tǒng)的接口,方法。通過課程設(shè)計(jì)進(jìn)一步掌握了地理信息系統(tǒng)與應(yīng)用課程的有關(guān)知識,掌握了GIS系統(tǒng)程序設(shè)計(jì)與開發(fā)課程的相關(guān)知識,掌握了進(jìn)行系統(tǒng)定義、系統(tǒng)總體設(shè)計(jì)方法、系統(tǒng)詳細(xì)設(shè)計(jì)、空間數(shù)據(jù)庫設(shè)計(jì)方法,掌握了利用開發(fā)語言和GIS組件開發(fā)進(jìn)行地理信息系統(tǒng)二次開發(fā)的能力,實(shí)現(xiàn)地理信息系統(tǒng)的基本功能和擴(kuò)展功能,掌握面向?qū)ο筮M(jìn)行程序設(shè)計(jì)的方法,并且可以建立空間數(shù)據(jù)庫完成圖形數(shù)據(jù)和屬性數(shù)據(jù)的統(tǒng)一管理,將所學(xué)的內(nèi)容加以綜合,并且對GIS的二次開發(fā)有了整體的理解,真正實(shí)現(xiàn)從課本到實(shí)踐的應(yīng)用。二、實(shí)習(xí)地點(diǎn)國防科技大樓602三、實(shí)習(xí)內(nèi)容C#是一種現(xiàn)代的面向?qū)ο笳Z言。它使程序員快速便捷地創(chuàng)建基于Microsoft.NET平臺的解決方案。利用C#+SuperMapObjects進(jìn)行二次開發(fā),熟悉對GIS系統(tǒng)的二次開發(fā)。在此我實(shí)現(xiàn)的主要功能有:1、空間操作功能、地圖瀏覽功能和地圖量算:(1)在這里實(shí)現(xiàn)的功能主要有:打開工作空間、關(guān)閉工作空間、退出程序、點(diǎn)選、放大、縮小、平移、自由縮放、全幅顯示和長度的量算、面積的量算、角度的量算。(2)需要添加的控件有:SuperMap控件、SuperWorkspaceManager控件、SuperLegend控件和SuperWorkspace控件。(3)主要使用的接口:a、控件的關(guān)聯(lián)和斷開:調(diào)用接口SuperMap.Connect()、SuperWkspMamager.Connect()、SuperLegend.Connct()實(shí)現(xiàn)上述控件的關(guān)聯(lián)。例:this.axSuperMap1.Connect(this.axSuperWorkspace1.CtlHandle);//關(guān)聯(lián)SuperMap,SuperWorkspaceManager控件b、打開工作空間:調(diào)用接口SuperWorkspace.Open打開工作空間。例:boolblnOpen=this.axSuperWorkspace1.Open(strOpenPath,"");//打開工作空間c、關(guān)閉工作空間:調(diào)用接口SuperWorkspace.Close關(guān)閉工作空間。例:axSuperWorkspace1.Close();//關(guān)閉工作空間d、打開數(shù)據(jù)源:調(diào)用SoLayers.AddDataset()打開選中的數(shù)據(jù)集。例:soLayerobjLy=oaxSuperMap1.Layers.AddDataset(objDt,true);//添加指定數(shù)據(jù)集到地圖窗口中e、地圖瀏覽操作:通過設(shè)置SuperMap.Action的值將當(dāng)前鼠標(biāo)的操作狀態(tài)設(shè)置為地圖瀏覽操作。例:點(diǎn)選功能的操作:axSuperMap1.Action=SuperMapLib.seAction.scaSelect;ControlState(seAction.scaSelect);//設(shè)置菜單項(xiàng)的狀態(tài)f、地圖量算:通過接口SuperMap.TrackingLayer獲得跟蹤對象;然后通過設(shè)置SuperMap.Action的值將當(dāng)前鼠標(biāo)的操作狀態(tài)為跟蹤層上的繪制線;最后在繪制事件SuperMap.Tracking()中獲得量算結(jié)果,并顯示在狀態(tài)欄中。量算距離的程序:soTrackingLayerobjTLayer=axSuperMap1.TrackingLayer;//獲得跟蹤層對axSuperMap1.Action=seAction.scaTrackPolyline;//設(shè)置當(dāng)前鼠標(biāo)狀態(tài)為在內(nèi)存中畫折線(4)準(zhǔn)備的數(shù)據(jù):執(zhí)行屬性顯示功能的結(jié)果2、查詢功能(1)本章通過使用一幅美國行政區(qū)劃圖實(shí)現(xiàn)查找Missouri河、查詢Missouri河穿過的州、查詢Missouri河200公里以內(nèi)的縣、查詢SouthDakota州包含的州和關(guān)聯(lián)查詢SouthDakota州的人口數(shù)的功能。本章是在上一功能的基礎(chǔ)上開發(fā)的,且不需要添加特殊的控件,所以控件和上一功能的一樣。(2)準(zhǔn)備的數(shù)據(jù):(3)主要使用的接口和操作:a、查找Missouri河:通過查詢操作soDatasetVector.Query(),soRecordset.GetGeometry()獲得查詢到的對象soGeometry,調(diào)用soTrackingLayer.AddEvent()將查詢到的對象添加到臨時(shí)圖層上顯示。例:soRecordsetobjRecordset=((soDatasetVector)axSuperMap.Layers["RiversL@us"].Dataset).Query("RIVER_NAME='Missouri1'",true,null,"");//查詢到Missouri河soGeometryobjGeo=objRecordset.GetGeometry();//獲得幾何對象axSuperMap1.TrackingLayer.AddEvent(objGeo,null,"Missouri1");//顯示b、查詢Missouri河穿過的州:先用a的方法查出Missouri的幾何對象,再調(diào)用空間查詢soDatasetVector.QueryEx(),并調(diào)用soSelection.FromRecordset()將查詢到的對象添加到選擇集并高亮顯示。例:soRecordsetobjRecordsetR=objDatasetVectorR.QueryEx(objGeo,seSpatialQueryMode.scsLineCross,"");//空間查詢axSuperMap1.selection.FromRecordset(objRecordsetR);//把帶有幾何對象的記錄集轉(zhuǎn)化為選擇集c、查詢Missouri河200公里以內(nèi)的縣:先用a的方法查出Missouri的幾何對象,再執(zhí)行距離查詢soDatasetVector.QueryByDistance(),調(diào)用soSelection.FromRecordset()將查詢到的對象添加到選擇集并高亮顯示。例:soRecordsetobjRecordsetR=objDatasetVectorR.QueryByDistance(objGeo,200000,"");//距離查詢d、查詢SouthDakota州包含的州:實(shí)現(xiàn)的過程和步驟與“查詢Missouri河穿過的州”相同。e、關(guān)聯(lián)查詢SouthDakota州的人口數(shù):新建soRelQueryTableInfo對象,設(shè)置被關(guān)聯(lián)數(shù)據(jù)集的相關(guān)參數(shù),新建soRelQueryTableInfos對象,添加一個(gè)或多個(gè)soRelQueryTableInfo對象,新建soQueryDef對象,設(shè)置查詢方式、查詢字段、查詢條件,設(shè)置關(guān)聯(lián)表信息soRelQueryTableInfos對象,通過soDatasetVector.QueryDef()函數(shù)查詢符合條件的記錄,得到記錄集,通過記錄集soRecordset.GetFieldValue()獲得關(guān)聯(lián)查詢到的值。例:soRelQueryTableInfosobjRelTables=newsoRelQueryTableInfos();//新建對象soRelQueryTableInfoobjRelTable=newsoRelQueryTableInfo();//新建對象soQueryDefobjQueryDef=newsoQueryDef();//定義查詢信息soRecordsetobjRecordset=objDV.Query2(objQueryDef);//查詢符合條件的記錄StringstrValue=objRecordset.GetFieldValue("POP").ToString();//獲得關(guān)聯(lián)查詢到的值查詢Missouri河200公里以內(nèi)的縣的到的結(jié)果3、緩沖區(qū)查詢:(1)本章通過用長春市區(qū)圖和奧運(yùn)火炬?zhèn)鬟f路線實(shí)現(xiàn)了創(chuàng)建在奧運(yùn)火炬路線200米警戒范圍的緩沖區(qū),在緩沖區(qū)內(nèi)獲得派出所信息,并查詢各有多少警力。最后將查詢到的結(jié)果在跟蹤圖層上表現(xiàn)出來。本章是基于第二章的基礎(chǔ)上開發(fā)來的,且不需要添加特殊的控件,所以控件和第二章一樣。(2)準(zhǔn)備的數(shù)據(jù):(3)主要的接口和操作:a、創(chuàng)建緩沖區(qū):調(diào)用接口soSpatialOperator.Buffer()獲得緩沖區(qū)面對像。b、緩沖區(qū)查詢:調(diào)用接口soDatasetVector.QueryEx(),根據(jù)緩沖區(qū)面對像對其他圖層做控件查詢,并對查詢結(jié)果進(jìn)行統(tǒng)計(jì)。c、顯示分析結(jié)果:通過接口SuperMap1.TrackingLayer獲得跟蹤圖層對象,然后將分析的結(jié)果添加到跟蹤圖層上。四、實(shí)習(xí)心得體會通過這次設(shè)計(jì),我不但對組件式的GIS二次開發(fā)有了進(jìn)一步的認(rèn)識,也進(jìn)一步熟悉了SuperMapObjects與C#相結(jié)合的應(yīng)用,提高了對c#和SuperMapObjects的操作能力。以前的學(xué)習(xí)只是學(xué)習(xí)一些單項(xiàng)功能,這些課讓我學(xué)會了如何靈活的使用和組合這些功能,從而得到一個(gè)新的作品。這在課設(shè)過程中,我們體會到了地理信息系統(tǒng)在人們?nèi)粘I钪邪l(fā)揮的廣泛作用,增加了我們對自己所學(xué)專業(yè)的信心。同時(shí),也增加了我們的理論知識儲備,鍛煉并提高了實(shí)踐能力,相信這一定會在今后的學(xué)習(xí)工作中為我們提供很大的幫助。附錄:緩沖區(qū)查詢的主要代碼:創(chuàng)建緩沖區(qū):privatevoid創(chuàng)建緩沖區(qū)ToolStripMenuItem_Click(objectsender,EventArgse){//獲得幾何對象soGeometryobjSelectGeo=axSuperMap1.selection.ToRecordset(true).GetGeometry();for(intiRecordCount=1;iRecordCount<=this.axSuperMap1.selection.ToRecordset(true).RecordCount;iRecordCount++){//進(jìn)行緩沖區(qū)分析soGeoRegionobjBufferRegion=((soGeoLine)objSelectGeo).SpatialOperator.Buffer(200,20);//顯示soTextPartoTp=newsoTextPartClass();soGeoTextoGt=newsoGeoTextClass();soTextStyleoTStyle=newsoTextStyleClass();oTp.Text="200米警戒范圍";oTp.x=objBufferRegion.CentroidPoint.x;oTp.y=objBufferRegion.CentroidPoint.y;oGt.AddPart(oTp);oTStyle.Align=seTextAlign.sctMiddleCenter;oTStyle.FontHeight=200;oTStyle.Color=(uint)ColorTranslator.ToOle(Color.Red);oTStyle.Bold=true;oGt.TextStyle=oTStyle;this.axSuperMap1.TrackingLayer.AddEvent((soGeometry)oGt,null,"");//將文本添加到跟蹤層上顯示this.axSuperMap1.TrackingLayer.AddEvent((soGeometry)objBufferRegion,null,"");}axSuperMap1.Refresh();}緩沖區(qū)查詢:privatevoid緩沖區(qū)查詢ToolStripMenuItem_Click(objectsender,EventArgse){//設(shè)置點(diǎn)風(fēng)格soStyleobjStyle=newsoStyleClass();objStyle.PenColor=(uint)ColorTranslator.ToOle(Color.Blue);objStyle.PenWidth=20;objStyle.SymbolSize=24;objStyle.SymbolStyle=66;//查詢政府單位圖層soLayerobjLy=this.axSuperMap1.Layers["Government@changchun"];//進(jìn)行空間查詢soRecordsetobjRd=((soDatasetVector)objLy.Dataset).QueryEx(this.axSuperMap1.TrackingLayer.get_Event(1).geometry,seSpatialQueryMode.scsContaining,"code=3");//顯示for(intiRecordCount=1;iRecordCount<=objRd.RecordCount;iRecordCount++){soGeometryoGeo=objRd.GetGeometry();soTextStyleoTStyl=newsoTextStyleClass();//創(chuàng)建文本oTStyl.FontHeight=200;oTStyl.Align=seTextAlign.sctBottomLeft;
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版智能穿戴設(shè)備開模及批量生產(chǎn)合同范本3篇
- 2024年文化園區(qū)開發(fā)與運(yùn)營管理服務(wù)合同3篇
- 2024年跨境電商貨物收款代理服務(wù)合同3篇
- 2025版租賃房產(chǎn)風(fēng)險(xiǎn)評估與預(yù)警服務(wù)合同范本3篇
- 汽車制造廠油工施工合同
- 軍事設(shè)施土方施工合同
- 文化創(chuàng)意產(chǎn)業(yè)房產(chǎn)買賣合同模板
- 進(jìn)口商品存儲協(xié)議
- 銀行員工提升服務(wù)質(zhì)量承諾書
- 建筑橋梁施工人工費(fèi)合同
- 父愛深深 閱讀附答案
- 在小學(xué)語文教學(xué)中彰顯人文情懷 人文情懷
- 讀書分享 《被討厭的勇氣》
- 急性呼吸衰竭的診斷和處理
- GB/T 9846.4-2004膠合板第4部分:普通膠合板外觀分等技術(shù)條件
- 2021屆虹口區(qū)高三英語一模
- GB/T 337.1-2014工業(yè)硝酸濃硝酸
- 小學(xué)語文課程標(biāo)準(zhǔn)(2023年版)
- 第十一章英國自然風(fēng)景式園林
- 涉稅風(fēng)險(xiǎn)防范課件
- 燃?xì)忮仩t安全檢查表分析(SCL)+評價(jià)記錄
評論
0/150
提交評論