资源描述:
1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 利用VB编程完善MAPGIS图框制作功能 钟 华 华东有色地质勘查局814队,江苏 镇江 212005 摘 要介绍了如何利用VB编制一个应用程序,生成MAPGIS能识别的具有一定数据格式的明码文件,以便利用 MAPGIS制作出适合本单位行业特点的图框。 关键词VB ;MAPGIS;明码文件;图框 中图分类号 TP31 ;P631 文献标识码 A 文章编号 1000 - 8918200206 - 0475 - 03 随着MAPGIS地理信息系统软件的日益完善, 越来越多的部门、 行业,都把MAPGIS作为必备的 软件服务于本单位。以前,我队一直使用Surfer6. 0 及Geosoft作地质、 物化探图件,难以有效地将地质 与物化探图件叠合在一起,而MAPGIS软件能很好 地解决这个问题。MAPGIS软件是面对众多行业 开发的,而针对某一特定专业,由于其行业规范的要 求不一样,从而所需图件的版式不尽一致。在使用 MAPGIS的过程中,根据我单位的行业要求,利用 VB编程编辑了一些适用软件,有效地解决了上述 问题。现就 “绘制任意矩形图框” 的问题介绍如下。 1 简介 MAPGIS生成的图框样式图 1 与我们常用的 图框样式图 2 都为1 100 000图框在坐标的标 注上有很大的差异,为此,不得不将MAPGIS形成图 框的点、 线文件进行修改,既费时又费力,而且每次修 改得到的图框点、 线属性,尤其是点的位置难以保持 一致,造成在同一个项目中各个图框显得不协调。为 解决这个问题,我们利用VB6. 0制作了1个图框点、 线明码文件. wat、. wal生成程序,再利用MAP GIS的明码格式数据转换接口,将其转换成点 、 线 . wt 、 . wl 文件。 2 界面设计 我们设计出的界面图 3 与MAPGIS投影变换 系统中制作图框的界面相似,只是功能单一,仅用作 “绘制十字公里线” 的图框。 在界面上,目前用到的控件有① “图廓参数” 、 图1 MAPGIS生成的图框样式 图2 经过改进的图框样式 “图廓内网线参数” 内的各标签及文本框;② “比例 尺” 、“十字线长” 、“图廊间距离”标签及文本框;③ 任意公里矩形分幅单选按钮;④ “确定” 命令按钮;⑤ “图框文件名” 命令按钮及其右侧的文本框text6 ; ⑥CommonDialog1公用对话框。上述控件的功能与 MAPGIS系 统 制 作 图 框 的 界 面 中 各 对 应 控 件的功能完全相同。 每个文本框都可采用键盘输入 收稿日期2002 - 01 - 18 第26卷第6期物 探 与 化 探Vol. 26 ,No. 6 2002年12月GEOPHYSICAL 点击 “图框文 件名” 命令按钮时,执行CommonDialog1. ShowSave及 T ext6. T ext CommonDialog1. FileName命令,使得 text6文本框内容为我们所选择的盘符、 路径及文件 名。点击 “确定” 命令按钮后生成点、 线明码文件。 在编程时直接将图框左下角平移为原点。 3 代码编写 代码编辑过程中需解决2个问题一是如何将 实际坐标 X 、 Y 值以下简称实际值 , 根据成图比 例尺的大小转变为图上的横、 纵坐标轴值以下简 称图上值 , 用来确定画线及标注点的准确位置;二 是准确地计算出所成图框中标注点的个数、 内容及 线的条数注意线的条数加1后方可作为线明码文 件中线条数,否则所作图形会丢失最后一根线。 从图2可以看出,标注点的类形分2种一是横 轴上的 “163” 及纵轴上的 “41”以下简称 “大数” ; 二 是 “00” 、“05” 、“10” 之类的以下简称 “小数”。 “小 数” 标注与否是由网起始值X, Y和网间隔DX, DY 来确定的,“大数” 只在轴的首、 尾位置及 “大数” 值发生变化时进行标注。 3. 1 坐标转换 MAPGIS所作图件是以mm为单位的,而我们 输入的数据是以km为单位,只需将实际值经过换 算就可得到图上值。如求横、 纵轴长度采用 dxl 1000000 / blc3x2 - x1 dyl 1000000 / blc3y2 - y1 求网起始的图上值采用 x0 1000000 / blc3 X - x1 y0 1000000 / blc3 Y - y1 求网间距的图上值采用 dx0 1000000 / blc3dx dy0 1000000 / blc3dy 其中,dxl为内图框线的横向长度实型变量 ;dyl为 内图框线的纵向长度实型变量 ;blc为作图比例尺 分母值整形变量 ;x0 、y0分别为图上横、 纵起始标 注值整形变量 ;dx0、dy0分别图上横、 纵网间隔长 度整形变量 ; 其它变量见图3。 3. 2 计算点、 线个数 线条数的求得是由网起始值X, Y 实型变 量、 网间隔DX,DY 实型变量及横、 纵向公里值 X2 ,Y2 实型变量来决定的,我们采用下式分别 求出单个横、 纵轴上线的条数 nx Int x2 -X / dx 1 ny Int y2 -Y / dy 1 图框四角上定义有8条线,3条矩形线框,图框 内各十字线的条数之和为nx3ny32。这样整个图 框线的条数即为nx ny32 11 nx3ny32。 为了编程的简单,我们假设标注 “小数” 的地方 同时也进行 “大数” 标注,这样点的个数即为2323 nx ny。只是在程序的编辑过程中将不须标注 674 物 探 与 化 探26卷 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. “大数” 的地方,“大数” 值以空字符代替。确定标注 点时,先将标注内容的数值型转换为字符型,求其长 度longx、longx ,再分别求出 “小数” 及 “大数” 标注的 内容。 longx LenLTrim Strxxi∃3 longy LenLTrim Stryyi∃2 xmi MidLTrim Strxxi , 4 , longx If xmi ”00”Or i 1 Or i nx Then xmmi MidLTrim Strxxi ,1 ,3 ymi MidLTrim Stryyi , 3 , longy If ymi ”00”Or i 1 Or i ny Then ymmi MidLTrim Stryyi ,1 ,2 式中 xx i、yy i为标注内容的数值型实型变 量 ; xm i、ym i为 “小数” 标注内容的字符型; xmmi、ymmi为 “大数” 标注内容的字符型。 依据MAPGIS明码文件格式,编制出程序代 码,最后编辑成执行文件。运行该执行文件就可方 便、 快速地生成所需明码文件。 4 结语 以上程序是针对MAPGIS6. 0版本进行开发 的。在实际工作中,我们利用VB还编制了一些实 用程序,如如何将数据文件中由坐标值控制的点、 线转换成MAPGIS能够识别的明码格式文件,以便 于生成点、 线文件;如何利用数据文件直接做带横、 纵坐标轴的剖面曲线;如何利用具有一定格式用于 物探正演计算的地质模型的数据文件,直接做出地 质模型图等等。但要使程序具易移植性和可扩展 性,还必须做比较系统的工作,并且还可利用 MAPGIS开发工具包,使得用VB编制的程序不必 生成明码文件,而是直接生成点、 线、 区文件。真正 做到高效地使用MAPGIS。文中错误之处,望批评 指正。 参考文献 [1] Holener S. Visual Basic 6技术内幕[J ].详实翻译组,译.北京 清华大学出版社,1999. [2] 孙家广,杨长贵.计算机图形学新版 [J ].北京清华大学出版 社, 1994. THE APPLICATION OF VB PROGRAMMING TO IMPROVING THE FRAME2MAKING FUNCTION OF MAPGIS ZHONG Hua East China Bureau of Geological Exploration for Nonferrous Metals Zhenjiang212005, China Abstract This paper describes the utilization of VB to write an applied program and a plain code file which has a certain data at recognizable by MAPGIS, with the purpose of using MAPGIS to make the picture frame suitable for the professional charac2 teristics of one’s own unit. Key words VB ; MSPGIS plain code file; picture frame 作者简介作者简介钟华1963 - ,男,湖北云梦县人。1985年毕业于中南矿冶学院地球物理探矿专业。现在华东有色地 质勘查局814队工作,物探工程师。 各位作者 您好感谢您曾为本刊投稿。因工作需要,我们希望了解您发表在本刊的文章 所属项目的获奖情况。 若项目获得了国家级或省部级的特等、 一等、 二等、 三等、 四等奖,请告诉我们,并 请将获奖证书的复印件提供给我们,注明论文题目、 刊发时间等。 谢谢您的合作 本刊编辑部 774 6期钟华利用VB编程完善MAPGIS图框制作功能
展开阅读全文