張士朋,王智慧
(1.豐寧縣林業(yè)局,河北 豐寧 068350;2.豐寧縣千松壩林場,河北 豐寧 068350)
基于MAPINFO的《國家級公益林管理系統(tǒng)(縣級版)》小班圖制作輸出系統(tǒng)建立與使用
張士朋1,王智慧2
(1.豐寧縣林業(yè)局,河北 豐寧 068350;2.豐寧縣千松壩林場,河北 豐寧 068350)
該文以近年政府公布的二類調(diào)查數(shù)據(jù)成果為基礎(chǔ),使用MAPINFO地理信息系統(tǒng)制作小班圖,利用二次開發(fā)軟件MAPBASIC進(jìn)行系統(tǒng)的開發(fā),實現(xiàn)電子小班圖的標(biāo)準(zhǔn)化和小班圖按選擇的單位自動批量輸出,保證了質(zhì)量并提高了工作效率,達(dá)到操作簡單、方便使用的目的,供國家級公益林縣級管理單位參考和使用。
MAPINFO MAPBASIC;國家級公益林;小班圖制作輸出
2009年國家林業(yè)局分發(fā)了《國家公益林管理系統(tǒng)(縣級版)》應(yīng)用程序,為國家級公益林的縣級管理開拓了新的平臺,此系統(tǒng)是基于傳統(tǒng)數(shù)據(jù)庫開發(fā)的,沒有集成現(xiàn)代地理信息系統(tǒng),因此小班的圖形管理還是基于電子圖片的插入和綁定。這樣,制作小班圖和輸出標(biāo)準(zhǔn)的電子圖片就成為組建該系統(tǒng)的重要工作。河北省現(xiàn)在林業(yè)上使用的是MAPINFO地理信息系統(tǒng),因此,小班圖的制作輸出系統(tǒng)的建立與使用是基于MAPINFO及其二次開發(fā)軟件MAPBASIC應(yīng)用程序的。
以最近二類調(diào)查數(shù)據(jù)為基礎(chǔ),以現(xiàn)有的地理信息系統(tǒng)數(shù)據(jù)如電子地形圖,各級行政區(qū)劃界線,林業(yè)營林區(qū)、林班界、小班界等為基礎(chǔ),按照《林業(yè)地圖圖式》的要求制作森林資源調(diào)查基本圖。
考察《國家公益林管理系統(tǒng)(縣級版)》應(yīng)用程序,探討圖片及其分辨率的大小。以國家級公益林小班明細(xì)數(shù)據(jù)為檢索依據(jù),保證范圍的準(zhǔn)確性。參照微軟公司的程序設(shè)計習(xí)慣,設(shè)計用戶菜單、工具條和彈出窗口3種界面并設(shè)置快捷鍵,方便客戶使用。應(yīng)用模塊化的程序設(shè)計理念,將用戶程序劃分為加載小班數(shù)據(jù)、選擇打印范圍和輸出小班圖3個數(shù)據(jù)處理模塊和激活與關(guān)于兩個系統(tǒng)模塊。選擇打印范圍分為鄉(xiāng)、村、林班3個選項,使用的是代碼和規(guī)范的林班號,在選擇打印范圍和輸出小班圖后都彈出對話框,顯示選擇或輸出小班圖的圖幅數(shù),具有友好的界面。
2.2.1 公益林小班圖及分辨率的設(shè)定 查看《國家級公益林管理系統(tǒng)(縣級版)》應(yīng)用程序小班圖瀏覽窗口,使用Alt+Print Screen鍵復(fù)制窗口到系統(tǒng)剪切板,運行Photoshop應(yīng)用程序,新建以預(yù)設(shè)剪切板圖片大小的畫布,粘貼剪切板上的圖像,選擇小班圖像區(qū)域,裁切后查看其圖像大小,即可得標(biāo)準(zhǔn)圖片的大小及其像素標(biāo)準(zhǔn)。得知圖片的大小為高14.0寬16.4,分辨率為72像素/英寸。
2.2.2 數(shù)據(jù)準(zhǔn)備 從《國家級公益林管理系統(tǒng)(縣級版)》導(dǎo)出公益林小班明細(xì)數(shù)據(jù),保存數(shù)據(jù)類型為dbase IV的dbf文件,在MAPINFO應(yīng)用程序中打開該文件注冊成表文件,執(zhí)行“表”菜單下的“創(chuàng)建點”命令,選擇該表并設(shè)置好投影、使用符號,符號大小最好設(shè)定為1,使該表具有地理特征的點對象。程序的設(shè)計是基于該表特定的數(shù)據(jù)結(jié)構(gòu)。
2.3.1 用戶界面的設(shè)計 包括菜單設(shè)計、工具條設(shè)計和對話框設(shè)計。
(1)菜單設(shè)計。在MAPINFO原有菜單的基礎(chǔ)上,增加了“用戶”菜單,并且移到“幫助”菜單之前。按功能設(shè)計了加載小班數(shù)據(jù)、選擇打印范圍、輸出小班圖、激活和關(guān)于五個菜單項,其中加載小班數(shù)據(jù)、選擇打印范圍、輸出小班圖三個數(shù)據(jù)處理菜單項都設(shè)計了快捷鍵。
(2)工具條設(shè)計。在MAPINFO原有工具條的基礎(chǔ)上增加了“用戶”工具條,設(shè)計了3個數(shù)據(jù)處理工具按鈕,分別執(zhí)行加載小班數(shù)據(jù)、選擇打印范圍、輸出小班圖的功能。
(3)對話框設(shè)計。設(shè)計了“打開文件”對話框,“選擇輸入輸出公益林小班圖的范圍”對話框,“選擇輸出小班圖目錄”對話框,“激活程序”對話框,“關(guān)于”對話框,兩個常用文本提示框,兩個特殊情況文本提示框,一個是否選擇對話框。
2.3.2 過程設(shè)計 包含文件的引用、過程的聲明、全局變量的聲明、主過程設(shè)計和五個子過程設(shè)計。本文主要介紹主過程和3個數(shù)據(jù)處理子過程設(shè)計。系統(tǒng)文件的引用,過程的聲明、變量的聲明和激活與關(guān)于二個子過程簡略。
(1)主過程main設(shè)計。主要是用戶程序接口設(shè)計,使用create menu語句創(chuàng)建用戶菜單及菜單項,使用alter menu bar語句移除和加載菜單。使用create buttonpad語句創(chuàng)建用戶工具條及工具按鈕,使用show方法顯示工具條,使用calling命令調(diào)用子過程。使用disable或enable語句設(shè)置菜單項和工具條按鈕是否處于可激活狀態(tài)。
(2)加載公益林?jǐn)?shù)據(jù)庫過程設(shè)計。主要使用打開文件對話框FileOpenDlg()函數(shù),將公益林?jǐn)?shù)據(jù)庫打開加載到當(dāng)前地圖窗口。重點考慮了兩種特殊情況,一是如果沒有選擇數(shù)據(jù)庫文件則返回的文件名為空字符串,二是如果當(dāng)前窗口不是地圖窗口,則退出該過程。使用了if…end if條件語句和退出子過程語句exit sub。
(3)選擇打印范圍過程設(shè)計。主要使用了do…loop while循環(huán)語句,當(dāng)輸入的代碼錯誤(即按條件選擇的記錄數(shù)為零)時,按“確定”按鈕可以回到對話框重新輸入條件,如果按“取消”按鈕,則退出該過程。使用dialog語句設(shè)計了包括3個單選按鈕、1個文本編輯框和2個命令按鈕的對話框,使用if…end if條件語句判斷是否按下確定按鈕。使用do case…end case分支條件語句根據(jù)用戶選擇輸入的選項不同,使用select選擇查詢語句,選擇給定條件的記錄到新表,使用fetch語句定位記錄指針,使用表.字段名的方式引用當(dāng)前記錄特定字段的值,判斷數(shù)據(jù)的管理單位是否和注冊的管理單位一致,提高了程序的保密性和安全性。使用if…end if條件判斷語句結(jié)合windowinfo()函數(shù),判斷當(dāng)前窗口是否為地圖窗口。使用set window語句設(shè)置窗口的大小和標(biāo)題,使用set map語句設(shè)置地圖窗口,重點是將公益林小班的x、y坐標(biāo)設(shè)置成窗口的中心坐標(biāo)。設(shè)置地圖窗口的比例尺為1∶10000。
(4)輸出小班圖過程設(shè)計。主要使用了保存文件對話框 FileSaveAsDlg()函數(shù)及 PathToDirectory$()路徑提取目錄函數(shù)。重點使用了do…loop until語句和fetch語句及保存窗口語句save window語句。以EOT()函數(shù)返回值true(記錄指針是否指向最后一條記錄)為循環(huán)終止條件,在循環(huán)中設(shè)置了引用當(dāng)前記錄的x、y坐標(biāo)和村代碼、林班號與小班號,始終保持輸出之前使當(dāng)前記錄的小班圖位于窗口的中心,按《國家級公益林管理系統(tǒng)(縣級版)》的要求,科學(xué)設(shè)置了小班文件名,為了保證圖片的準(zhǔn)確性,在小班圖片的底部印下與小班文件名一致的小班編碼。
如果需要可以在地圖窗口中使用裝飾圖層,設(shè)置裝飾圖層為可編輯,然后使用create語句結(jié)合窗口中心點坐標(biāo)創(chuàng)建點對象和文本對象,設(shè)置指南針和標(biāo)識公里網(wǎng)。如果提前對公益林小班進(jìn)行處理,在新增列中添加圖幅號數(shù)據(jù),那么在小班圖窗口中即可設(shè)置圖幅號。使小班界面更加完美。
該程序是基于mapinfo6.0使用mapbasic6.0開發(fā)工具進(jìn)行設(shè)計開發(fā)的,適用于mapinfo6.0以后的版本加載使用。該程序以公益林小班數(shù)據(jù)和管理單位數(shù)據(jù)為基礎(chǔ),其中公益林小班數(shù)據(jù)應(yīng)為mapinfo地理信息系統(tǒng)具有圖形特征(點對象)的表,管理單位數(shù)據(jù)用于選擇查詢范圍時使用。
在使用小程序前應(yīng)設(shè)置好mapinfo的地圖窗口,把二類小班圖及標(biāo)注或公益小班圖及標(biāo)注與地形圖都設(shè)置好,單擊工具條的運行按鈕,選擇解壓后的dlg_sql.MBX文件后,mapinfo窗口的菜單欄中增加了“用戶”菜單和“用戶工具條”。首先得進(jìn)行小程序的激活,單擊“用戶”菜單下的“激活”命令,彈出激活對話框,輸入管理單位的行政區(qū)劃代碼,向程序的開發(fā)者索要密碼即可激活“用戶”菜單下“加載公益林小班數(shù)據(jù)”菜單命令和工具。單擊“用戶”菜單下“加載公益林小班數(shù)據(jù)”菜單命令或“用戶”工具條的第1個按鈕,彈出“加載公益林小班數(shù)據(jù)”對話框,選擇公益林地理信息文件加載成功后即可激活“用戶”菜單下“選擇打印范圍”菜單命令和工具。單擊“用戶”菜單下“選擇打印范圍”菜單命令或“用戶”工具條的第2個按鈕彈出“選擇打印范圍”對話框,先選擇單選按鈕,然后在下方的文本框中輸入相應(yīng)的規(guī)范值,注意應(yīng)在設(shè)置好的地圖范圍內(nèi),單擊確定后,若選擇成功,則彈出信息對話框,提示共選擇的小班數(shù)。單擊確定,可激活“用戶”菜單下“輸出小班圖”菜單命令和工具,單擊“用戶”菜單下“輸出小班圖”菜單命令或“用戶”工具條的第3個按鈕彈出“選擇輸出目錄”對話框,只選擇需存放的目錄即可,不要修改文件名。確定后,選擇的小班將自動輸出小班圖到選擇的目錄下,文件名是規(guī)范的。輸出完畢后彈出對話框,顯示輸入小班圖的幅數(shù)。單擊確認(rèn),即可激活“用戶”菜單下“選擇打印范圍”菜單命令和工具,設(shè)置好地圖后再選擇打印范圍,可多次輸出小班圖。
P208
A
1002-3356(2010)04-0041-02
2010-05-21