熱點

當前位置 /首頁/範文/熱點/列表

計算機專業論文

計算機專業論文

一、實驗課時和型別:

學時:8

實驗型別:綜合性

二、實驗目的:

1.認識空間資料庫中資料的存放方式或儲存結構;

2.掌握空間資料庫的格網索引、標題索引的建立方法;

3.理解空間索引的功能和意義;

4.加強學生物件導向程式設計的能力。

三、適用專業:

地理資訊系統專業

四、採用教材:

教材:《計算機地圖製圖》艾自興,龍毅編著 武漢大學出版社

參考書:《地圖學》 祝國瑞 編著 武漢大學出版社

五、儀器與工具:

P3以上配置計算機;

VC++工具軟體;

實驗地圖資料。

六、實驗原理與內容:

本次實驗為綜合性實驗,涉及《數字地圖製圖原理》、《計算機地圖製圖原理》、《地圖資料庫》等幾門課程中所講的內容。

七、實驗資料說明

1、 地圖區域:武漢市

檔名:武漢實習資料

2、分類程式碼:

程式碼 名稱

30000 控制點

10000 圖廓點

10001 鐵路

10003 汽渡虛線

10004 主要道路

20001 碼頭

20002 鐵路中轉站

20003 河流、湖泊

20004 居民地

3、程式碼說明:

分類程式碼第一個字元為1,表示線目標;

分類程式碼第二個字元為2,表示面目標。

4、控制點順序:

第一點:左上角 第二點:右上角

第三點:右下角 第四點:左下角

控制點的理論值(人為規定x,y):

第一點:12.50 37.40

第二點:62.50 37.40

第三點:62.50 82.40

採用仿射變換方法。

主要實驗內容:

1.讀取資料

2.仿射變換

3.繪圖顯示

4.建立定位索引——格網索引

5.建立定性索引——標題索引

6.將已建立的格網索引用於目標拾取功能的實現

7.運用已建立的標題索引實現物件的屬性查詢

八、實驗步驟:

第一;建立一個MapOfWuhan (MFC)工程,引數缺剩

第二;建立地圖三要素:點、線、面。點類包括對應點的X,Y座標;線類包括線號(Xcode),線分類程式碼(Xflcode)以及組成線的點號陣列(m_array);面類包括面號(Mcode),面分類程式碼(Mflcode)以及組成面的點號陣列(m_array)。

第三;在讀取資料時,要設計儲存結構。在Doc中要建立點類陣列Array_dian,線類陣列Array_xian,面類陣列Array_mian,分別存放對應的點線面類目標。一共有655組資料,讀取的時候每組中的X,Y座標存放到預先定義的點類物件中,若每組的分類程式碼為線類目標的分類程式碼,則把相應的線的分類程式碼存放到事先定義的`線類物件的Xflcode中,把對應的組號存放到Xcode中,把組成線的一系列點類物件存放到線類物件的m_array中,最後把線類物件存放到對應的線類陣列(Array_xian)中;面類也是如此。這樣,就完成了讀取儲存,即將不同類的物件存放到不同的類陣列中。

第四;對資料進行仿射變換。選擇控制點中的1,2,3點,根據這三點的理論值和規定其在螢幕上的輸出值求出仿射變換的未知係數a0,a1,a2,b0,b1,b2。然後,順序掃描線類陣列Array_xian和 面類陣列Array_mian,對不同的線類物件和麵類物件的座標值進行變換(X=a0*x+a1*y+a2;Y=b0*x+b1*y+b2)。

第五;當顯示資料時,為了保證面狀地物不壓蓋線狀地物,首先要對面裝地物進行顯示,即順序掃描面類陣列Array_mian,根據陣列中物件分類程式碼(Mflcode)的不同,將不同的物件進行著色填充並顯示在螢幕上;然後再順序掃描線類陣列Array_xian,同樣根據線分類程式碼(Xflcode)的不同,對不同物件規定不同的畫筆並顯示在螢幕上。

第六;建立格網索引首先要建立一個索引類Csuoyin,其中包括存放經過每個格網的物件的標誌號碼(即線號(Xcode)和麵號(Mcode))的陣列HLcode,然後再Doc中定義一個自己已規定行列號的格網索引類的陣列HL[行號][列號]。然後對格網進行初始化,按行順序掃描每一個格網,在初始化每一個格網時,要順序掃描線類陣列Array_xian和麵類陣列Array_mian,判斷當前物件是否在當前格網內部,若在當前格網內部,則將當前物件的標誌碼(即線號Xcode或面號Mcode)存放到當前格網對應的HLcode中,依次進行,直到掃描完畢,格網初始化完畢。

第七;生成格網索引。首先要判斷當前滑鼠點選處所對應格網的行列號(行號=(當前點選點.Y-20)/20;列號=(當前點選點.X-60)/20),然後再順序掃描當前格網所存放的物件,在掃描每一個物件時,都要掃描一次線類陣列Array_xian和麵類陣列Array_mian,若當前格網物件的號碼與線類或者面類陣列物件的Xcode或是Mcode相同,則對線類或者是面類陣列中的物件進行顯示輸出。至此,格網索引完畢。

第八;建立一個定性索引的對話方塊,在對話方塊中加入一個EditBox,即文字輸入視窗,在視窗中輸入要查詢的地物名稱,點選確定即可將視窗中的內容存放到定性索引下預先定義的一個Char型別的陣列Dx_shuzu中。

第九;在Doc中定義一個定性索引型別的物件Dx_dialog,然後順序掃描線類陣列Array_xian,若當前在對話方塊輸入的內容與對應的線類地物名稱匹配成功(即Strcmp(“對話方塊輸入內容”,“線類地物名稱”)==0),則根據當前線狀地物的分類程式碼Xflcode,將當前地物輸出顯示在螢幕上;順序掃描面類陣列Array_mian,若在對話方塊中輸入的內容與面狀地物的名稱匹配成功(即Strcmp(“對話方塊輸入內容”,“面類地物名稱”)==0),則根據面狀地物的分類程式碼Mflcode,將當前面狀地物輸出顯示在螢幕上,定性索引建立完畢。

第十;求出當前點選點所對應的格網行列號,然後將當前格網存放的物件一次取出,再求出當前點選點與每個物件的距離d,再求出d中的最小值dmin,若dmin<規定的閥值D,則拾取顯示dmin對應的物件,否則拾取不成功。

九、注意事項

1.上機之前應先做好設計,以控制實驗程序和方向。

2.實驗中注意總結,聯絡所涉及的理論知識,解決所遇到的問題。

十、問題討論

1.格網索引建立的方法是什麼?

格網型空間索引的基本思想是將研究區域用橫豎線條劃分大小相等和不等的格網,記錄每一個格網所包含的空間實體。當用戶進行空間查詢時,首先計算出使用者查詢物件所在格網,然後再在該網格中快速查詢所選空間實體,這樣一來就大大地加速了空間索引的查詢速度。

建立格網索引常用的方法包括空間驅動索引和資料驅動索引,空間驅動索引包括均勻格網索引,點物件的網格檔案索引,網格檔案索引MBB;資料驅動索引包括R樹和R+樹索引等。

2.建立空間索引的目的是什麼?

空間索引的目的是為了在地理資訊系統中快速定位到所選中的地理物件,從而提高了空間操作的速度和效率。空間技術的優劣直接影響GIS的整體效能,因而它是GIS的一項關鍵技術。建立空間索引機制的主要目的是便於空間目標的定位及各種檢索操作。在一體化結構中共有兩種不同型別的索引結構:一種是建立面向目標資料(點和線要素資料)的索引結構,以便直接明確目標與空間位置之間的二維關係;另一種是建立面向空間資料(面要素基本格網充填資料)的索引結構,以便使其部分具有面向目標的功能。

TAG標籤:論文 計算機專業 #