李強龍
(沈陽龍?zhí)鞙y繪科技有限公司,遼寧沈陽 110000)
校園地理信息系統編輯功能的實現
李強龍
(沈陽龍?zhí)鞙y繪科技有限公司,遼寧沈陽 110000)
本次設計的地理信息系統具備了一些地理信息系統的基本功能。從數據庫的建立到系統的統計,地圖的編輯,系統的幫助。程序編寫過程中涉及到數據庫的建立,數據的讀寫,ADO,MapBasic語言,VB與MapBasic的集成開發(fā),本軟件能幫助用戶實現一些初步的功能。
地理信息系統 二次開發(fā) 地圖編輯 集成開發(fā) OLE
這個地理信息系統雖然規(guī)模很小,但它具備了一些地理信息系統的基本功能,從數據庫的建立到系統的統計,地圖的編輯,系統的幫助。程序編寫過程中涉及到數據庫的建立,數據的讀寫,ADO,MapBasic語言,VB與MapBasic的集成開發(fā)。本軟件能幫助用戶實現一些初步的功能,軟件中沒有查訊分析功能,限制了用戶實現一些高級GIS功能,這是本軟件的缺憾之一。由于時間有限,可能已有功能有些地方還不是非常完善,但大體框架功能都能實現。
(1)在進行系統的各個功能操作前,需要先打開一個可編輯的地圖窗口。從數據庫下拉菜單中選擇所有圖層,把從外業(yè)測量的地圖轉換成MapInfo可識別的文件。然后在文件下拉菜單中選擇打開工作空間,選擇剛才轉換過的地圖,便打開了一個操作窗口。
(2)統計功能主要是對采集的校園的地理信息數據進行分析、匯總,然后將統計出來的數據以圖形或圖表的顯示給用戶程序。一、計算統計值;在“統計”菜單中選擇“計算統計值”菜單項,就會彈出“計算列統計值”對話框。選擇你所要統計的表,和表中的列,單擊“確定”,就可以計算出一些相關的數值。這些數值以信息框的形式顯示出來。包括:表名、列名、記數、最大值、最小值、范圍、總和、平均值、方差和標準差一系列統計值。二、統計各圖層信息;在統計菜單中,選擇第一項“統計各圖層信息…”一項,就會彈出如上圖所示的對話框。選擇你所要統計的圖層和其擁有的數字字段。然后單擊“確定”就可以顯示對應的統計圖。三、統計面積;當選擇“統計”菜單項的“統計面積”一項時,會彈出“選擇圖層”窗體。然后,按照窗體上的要求,選擇要統計面積的圖層,再單擊“確定”,這樣就可以彈出“統計面積信息”的窗口。如下圖所示,系統會以統計圖的形式統計出各個圖層地物的面積信息。四、顯示統計窗口;先在地圖窗口中,選擇要統計的地物,然后在“統計”菜單中,選擇“選擇統計窗口”項,就會彈出信息窗口,來顯示統計出來的信息。支持多選,單只能選擇同一圖層的多個地物,只能統計這些地物數字方面的信息。顯示出來的信息窗口。
(3)地圖的編輯功能主要是實現塊狀地物的合并,線狀地物的去除多余線段和延長功能。一、合并功能;首先在地圖上選擇一個塊狀地物,點擊,然后在編輯下拉菜單中選擇設置目標,被選地物出現紅色被選標記,接著再點擊另一個要合并的塊狀地物,選擇編輯下拉菜單中的合并功能即可。二、去除多余線段;首先在地圖上選擇一條要去除多余線段的線狀地物,然后在編輯下拉菜單中選擇設置目標,被選地物出現紅色被選標記,接著再點擊另一個與其相交的線狀地物,選擇編輯下拉菜單中的去除多余線段功能,然后用”delete”鍵手動清除多余地物。三、延長功能;首先在編輯菜單中選擇延長線段功能,系統會自動彈出一個對話框,提示你在要延長的線段上點擊兩點,然后再要延長相交的線段上點擊兩點,點擊確定按鈕,系統自動完成線段的延長功能。
(4)幫助文檔:幫助文檔里主要是系統介紹和系統的一些操作步驟,可以讓初次接觸軟件的人員快速掌握系統的特點和懂得如何操作。
地圖編輯功能是GIS的一個主要功能。通過地圖編輯可以對地物進行修改并為分析地物做好準備。這次做的編輯功能主要是對面,直線和折線,由于點的操作很簡單,這次并沒有涉及到這方面的編程。對面實現的是合并功能,把兩個鄰近的面狀地物合為一個。對線狀地物實現的是延長和去除多余線段的操作。由于線狀地物分為直線和折線兩種,所以在編程時要考慮到這兩種線狀地物的不同特點,分別對待。下面我將詳細介紹如何實現以上這些功能。
MapInfo的地圖修改功能與其它GIS軟件相比是其一個比較薄弱的環(huán)節(jié),它僅提供了一些基本的圖形操作功能。這次設計在其原有的基礎上增加了幾個功能,并編了底層的操作程序。由于MapInfo自帶的二次開發(fā)語言提供了一些地圖修改語句和函數,所以在編程時有些功能可以直接調用,這樣加快了開發(fā)的速度。地物的合并和多余線段去除這兩個功能可以在MapInfo中直接找到,通過調用語句MapInfo.do便可以實現這兩個功能。線段延長功能在MapInfo中沒有直接的函數可以利用,這樣就必須通過MapBasic中已有的函數自行開發(fā)。在MapBasic中折線和直線是嚴格分開的,各自都有自己的函數和語句,沒有通用的函數和語句能同時作用于兩種線狀地物。于是在編制線段延長功能時需要分開考慮,然后合在一起。
由于在MapInfo的以及其二次開發(fā)語言中沒有延長線段這個功能,所以這部分功能必須從底層做起。我考慮到直線和折線的區(qū)別,決定分別實現這兩個功能。為了界面上的一致性,我決定對兩種線狀地物都采用一種算法。兩點形成一條直線是最簡單也最快捷的算法。
具體的程序開發(fā)是以MapInfo為地圖的操作后臺,以MapBasic為主要的編輯開發(fā)語言,與VB進行二次集成開發(fā)。但由于MapInfo的地圖編輯功能不是非常強大,所以有些編輯功能要進行底層的開發(fā)。但MapInfo的地圖修改功能與其它GIS軟件相比是其一個比較薄弱的環(huán)節(jié),它僅提供了一些基本的圖形操作功能。這次設計在其原有的基礎上增加了幾個功能,并編了底層的操作程序。由于MapInfo自帶的二次開發(fā)語言提供了一些地圖修改語句和函數,所以在編程時有些功能可以直接調用,這樣加快了開發(fā)的速度。地物的合并和多余線段去除這兩個功能可以在MapInfo中直接找到,通過調用語句MapInfo.do便可以實現這兩個功能。線段延長功能在MapInfo中沒有直接的函數可以利用,于是我利用MapBasic中已有的函數和語句自己進行了一些底層的開發(fā),開發(fā)后的程序能夠滿足功能要求。
[1]陳述鵬.地理信息系統導論[M].北京:科學出版社,2001.
[2]龔健雅編著.地理信息系統基礎[M].北京:科學出版社,2001.