基于MAPINFO的《国家级公益林管理系统(县级版)》小班图制作输出系统建立与使用

2010-04-09 11:28张士朋王智慧
河北林业科技 2010年4期
关键词:公益林对话框菜单

张士朋,王智慧

(1.丰宁县林业局,河北 丰宁 068350;2.丰宁县千松坝林场,河北 丰宁 068350)

基于MAPINFO的《国家级公益林管理系统(县级版)》小班图制作输出系统建立与使用

张士朋1,王智慧2

(1.丰宁县林业局,河北 丰宁 068350;2.丰宁县千松坝林场,河北 丰宁 068350)

该文以近年政府公布的二类调查数据成果为基础,使用MAPINFO地理信息系统制作小班图,利用二次开发软件MAPBASIC进行系统的开发,实现电子小班图的标准化和小班图按选择的单位自动批量输出,保证了质量并提高了工作效率,达到操作简单、方便使用的目的,供国家级公益林县级管理单位参考和使用。

MAPINFO MAPBASIC;国家级公益林;小班图制作输出

2009年国家林业局分发了《国家公益林管理系统(县级版)》应用程序,为国家级公益林的县级管理开拓了新的平台,此系统是基于传统数据库开发的,没有集成现代地理信息系统,因此小班的图形管理还是基于电子图片的插入和绑定。这样,制作小班图和输出标准的电子图片就成为组建该系统的重要工作。河北省现在林业上使用的是MAPINFO地理信息系统,因此,小班图的制作输出系统的建立与使用是基于MAPINFO及其二次开发软件MAPBASIC应用程序的。

1 国家级公益林小班图的制作

以最近二类调查数据为基础,以现有的地理信息系统数据如电子地形图,各级行政区划界线,林业营林区、林班界、小班界等为基础,按照《林业地图图式》的要求制作森林资源调查基本图。

2 国家级公益林小班图的输出设计

2.1 设计思想

考察《国家公益林管理系统(县级版)》应用程序,探讨图片及其分辨率的大小。以国家级公益林小班明细数据为检索依据,保证范围的准确性。参照微软公司的程序设计习惯,设计用户菜单、工具条和弹出窗口3种界面并设置快捷键,方便客户使用。应用模块化的程序设计理念,将用户程序划分为加载小班数据、选择打印范围和输出小班图3个数据处理模块和激活与关于两个系统模块。选择打印范围分为乡、村、林班3个选项,使用的是代码和规范的林班号,在选择打印范围和输出小班图后都弹出对话框,显示选择或输出小班图的图幅数,具有友好的界面。

2.2 程序设计的准备

2.2.1 公益林小班图及分辨率的设定 查看《国家级公益林管理系统(县级版)》应用程序小班图浏览窗口,使用Alt+Print Screen键复制窗口到系统剪切板,运行Photoshop应用程序,新建以预设剪切板图片大小的画布,粘贴剪切板上的图像,选择小班图像区域,裁切后查看其图像大小,即可得标准图片的大小及其像素标准。得知图片的大小为高14.0宽16.4,分辨率为72像素/英寸。

2.2.2 数据准备 从《国家级公益林管理系统(县级版)》导出公益林小班明细数据,保存数据类型为dbase IV的dbf文件,在MAPINFO应用程序中打开该文件注册成表文件,执行“表”菜单下的“创建点”命令,选择该表并设置好投影、使用符号,符号大小最好设定为1,使该表具有地理特征的点对象。程序的设计是基于该表特定的数据结构。

2.3 程序设计

2.3.1 用户界面的设计 包括菜单设计、工具条设计和对话框设计。

(1)菜单设计。在MAPINFO原有菜单的基础上,增加了“用户”菜单,并且移到“帮助”菜单之前。按功能设计了加载小班数据、选择打印范围、输出小班图、激活和关于五个菜单项,其中加载小班数据、选择打印范围、输出小班图三个数据处理菜单项都设计了快捷键。

(2)工具条设计。在MAPINFO原有工具条的基础上增加了“用户”工具条,设计了3个数据处理工具按钮,分别执行加载小班数据、选择打印范围、输出小班图的功能。

(3)对话框设计。设计了“打开文件”对话框,“选择输入输出公益林小班图的范围”对话框,“选择输出小班图目录”对话框,“激活程序”对话框,“关于”对话框,两个常用文本提示框,两个特殊情况文本提示框,一个是否选择对话框。

2.3.2 过程设计 包含文件的引用、过程的声明、全局变量的声明、主过程设计和五个子过程设计。本文主要介绍主过程和3个数据处理子过程设计。系统文件的引用,过程的声明、变量的声明和激活与关于二个子过程简略。

(1)主过程main设计。主要是用户程序接口设计,使用create menu语句创建用户菜单及菜单项,使用alter menu bar语句移除和加载菜单。使用create buttonpad语句创建用户工具条及工具按钮,使用show方法显示工具条,使用calling命令调用子过程。使用disable或enable语句设置菜单项和工具条按钮是否处于可激活状态。

(2)加载公益林数据库过程设计。主要使用打开文件对话框FileOpenDlg()函数,将公益林数据库打开加载到当前地图窗口。重点考虑了两种特殊情况,一是如果没有选择数据库文件则返回的文件名为空字符串,二是如果当前窗口不是地图窗口,则退出该过程。使用了if…end if条件语句和退出子过程语句exit sub。

(3)选择打印范围过程设计。主要使用了do…loop while循环语句,当输入的代码错误(即按条件选择的记录数为零)时,按“确定”按钮可以回到对话框重新输入条件,如果按“取消”按钮,则退出该过程。使用dialog语句设计了包括3个单选按钮、1个文本编辑框和2个命令按钮的对话框,使用if…end if条件语句判断是否按下确定按钮。使用do case…end case分支条件语句根据用户选择输入的选项不同,使用select选择查询语句,选择给定条件的记录到新表,使用fetch语句定位记录指针,使用表.字段名的方式引用当前记录特定字段的值,判断数据的管理单位是否和注册的管理单位一致,提高了程序的保密性和安全性。使用if…end if条件判断语句结合windowinfo()函数,判断当前窗口是否为地图窗口。使用set window语句设置窗口的大小和标题,使用set map语句设置地图窗口,重点是将公益林小班的x、y坐标设置成窗口的中心坐标。设置地图窗口的比例尺为1∶10000。

(4)输出小班图过程设计。主要使用了保存文件对话框 FileSaveAsDlg()函数及 PathToDirectory$()路径提取目录函数。重点使用了do…loop until语句和fetch语句及保存窗口语句save window语句。以EOT()函数返回值true(记录指针是否指向最后一条记录)为循环终止条件,在循环中设置了引用当前记录的x、y坐标和村代码、林班号与小班号,始终保持输出之前使当前记录的小班图位于窗口的中心,按《国家级公益林管理系统(县级版)》的要求,科学设置了小班文件名,为了保证图片的准确性,在小班图片的底部印下与小班文件名一致的小班编码。

如果需要可以在地图窗口中使用装饰图层,设置装饰图层为可编辑,然后使用create语句结合窗口中心点坐标创建点对象和文本对象,设置指南针和标识公里网。如果提前对公益林小班进行处理,在新增列中添加图幅号数据,那么在小班图窗口中即可设置图幅号。使小班界面更加完美。

3 程序的运行与使用说明

3.1 程序的运行适用条件

该程序是基于mapinfo6.0使用mapbasic6.0开发工具进行设计开发的,适用于mapinfo6.0以后的版本加载使用。该程序以公益林小班数据和管理单位数据为基础,其中公益林小班数据应为mapinfo地理信息系统具有图形特征(点对象)的表,管理单位数据用于选择查询范围时使用。

3.2 程序的使用说明

在使用小程序前应设置好mapinfo的地图窗口,把二类小班图及标注或公益小班图及标注与地形图都设置好,单击工具条的运行按钮,选择解压后的dlg_sql.MBX文件后,mapinfo窗口的菜单栏中增加了“用户”菜单和“用户工具条”。首先得进行小程序的激活,单击“用户”菜单下的“激活”命令,弹出激活对话框,输入管理单位的行政区划代码,向程序的开发者索要密码即可激活“用户”菜单下“加载公益林小班数据”菜单命令和工具。单击“用户”菜单下“加载公益林小班数据”菜单命令或“用户”工具条的第1个按钮,弹出“加载公益林小班数据”对话框,选择公益林地理信息文件加载成功后即可激活“用户”菜单下“选择打印范围”菜单命令和工具。单击“用户”菜单下“选择打印范围”菜单命令或“用户”工具条的第2个按钮弹出“选择打印范围”对话框,先选择单选按钮,然后在下方的文本框中输入相应的规范值,注意应在设置好的地图范围内,单击确定后,若选择成功,则弹出信息对话框,提示共选择的小班数。单击确定,可激活“用户”菜单下“输出小班图”菜单命令和工具,单击“用户”菜单下“输出小班图”菜单命令或“用户”工具条的第3个按钮弹出“选择输出目录”对话框,只选择需存放的目录即可,不要修改文件名。确定后,选择的小班将自动输出小班图到选择的目录下,文件名是规范的。输出完毕后弹出对话框,显示输入小班图的幅数。单击确认,即可激活“用户”菜单下“选择打印范围”菜单命令和工具,设置好地图后再选择打印范围,可多次输出小班图。

P208

A

1002-3356(2010)04-0041-02

2010-05-21

猜你喜欢
公益林对话框菜单
ArcGis在辽宁省国家公益林调整中的应用
中国新年菜单
正常恢复虚拟机
龙泉七成公益林实现信息化管理
Bootlace Worms’Secret etc.
What Is Beauty?
国家级重点公益林管理现状与发展对策研究
生态公益林可持续经营的探讨
本月菜单
浅谈VB的通用对话框《CommonDialog》控件的使用