APP下载

MapGIS与Excel VBA在地物化综合剖面成图中的协同应用

2013-03-12陈小宁王丽君林佳富

中国科技纵横 2013年1期
关键词:偏移量物化号线

陈小宁 王丽君 林佳富

【摘要】本文针对MapGIS明码文件与ExcelVBA在地物化综合剖面成图中的协同应用而展开。首先介绍MapGIS线文件的明码格式,再介绍Excel的自动化语言ExcelVBA自动高效地将原始数据整理并保存为MapGIS线明码文件,在绘制相关曲线的时候,通过相关参数的修改可以对曲线进行任意的组合,以适应实际工作和研究的需要。

【关键词】MapGIS明码文件 ExcelVBA 地物化综合剖面

1问题的提出及解决方法

在工作中,以往地物化综合剖面的绘制往往占用工作人员的大量时间。甚至采用先手绘,然后扫描,再矢量化的方法。工作人员在行业软件中进行了大量的尝试,但当涉及到工作比例尺、成图比例尺、曲线组合等问题的时候,此类软件就不能满足实际需求。

利用ExcelVBA强大的自动化编辑功能,构建MapGIS明码文件,然后将此明码文件转化为MapGIS的线文件,完成图件的绘制,这一过程中通过“偏移量”的设置,可以对元素任意组合,满足实际需要。

思路如图1所示。

2MapGIS文件明码格式介绍

本文主要使用MapGIS的线文件,所以现主要介绍MapGIS线明码文件的格式,点(区)文件的明码格式可参阅相关书籍(如图2)。

逻辑结构:文件头线数 1号线 2号线……n号线

具体为:

A、文件头,8个字节

WMAP9021

B、线数 n

C、1号线

D、线参数

说明:在以上的说明文字中,斜体部分为文件所需内容。文中带下划线的文字为介绍文字,实际明码文件中不需要。线参数包括:线型号,辅助线型号,线色,线宽,X系数,Y系数,辅助色,图层,透明输出(具体数值视MapGIS软件及成图需要)。

3Excel数据准备及ExcelVBA数据计算、提取

3.1绘制“数据计算与提取”按钮并添加按钮的单击事件,代码如下:

PrivateSubCommandButton1_Click()

UserForm1.Show

EndSub

3.2绘制“数据计算与提取”对话框,如图2所示

3.2.1添加“计算”按钮的单击事件

成图数据=观测数据×10×成图比例尺+偏移量

纵向偏移量相当于一常数,不同元素的偏移量设置为同一数值,即表示将这几种元素曲线组合在一起,添加“计算”按钮的单击事件,主要是通过循环语句for…next赋值,部分代码如下:

PrivateSubCommandButton1_Click()

DimiAsLong

DimkAsLong

k=Val(TextBox0.Text)+3

Worksheets("sheet1").Activate

Fori=4TokStep1

ActiveSheet.Cells(i,16).Value=(Val(Cells(i,4))*10/Val(TextBox2.Text)+Val(TextBox3.Text)

ActiveSheet.Cells(i,17).Value=(Val(Cells(i,5))*10/Val(TextBox5.Text)+Val(TextBox6.Text)

……

Nexti

EndSub

3.2.2添加“提取线”按钮的单击事件

“提取线”按钮主要是通过赋值语句将2.1过程中计算的数据按照MapGIS线明码文件的数据格式要求重新组合数据,完成效果如图3所示,步骤如下:

(1)采用VBA的赋值语言建立表头、输入线数、输入线参数,部分代码如下

ActiveSheet.Cells(1,1).Value="WMAP9021"

ActiveSheet.Cells(2,1).Value="16"

ActiveSheet.Cells(3,1).Value="1"

ActiveSheet.Cells(3,2).Value="1"

………

ActiveSheet.Cells(4,1).Value=k

(2)写入x、y坐标,部分代码如下:

Fori=5Tok+4

Worksheets("sheet2").Cells(i,2).Value=Worksheets("sheet1").Cells(i-1,21).Value

Worksheets("sheet2").Cells(i,1).Value=2*i-10

Nexti

(3)写入线的ID号和线长度参数,代码如下:

Worksheets("sheet2").Cells(k+5,1).Value=1

Worksheets("sheet2").Cells(k+5,2).Value=10000

经过以上三步,已经完成了MapGIS明码文件在Excel组建。接下来将Excel文件存储为以“wl”为后缀的文件。

3.3添加“保存线”按钮的单击事件

接下来将Excel文件存储为以“wal”为后缀的文件,字符见已逗号分隔,代码如下

PrivateSubCommandButton4_Click()

Dimstr$,i%,len1%

OpenThisWorkbook.Path&"\001.wal"ForOutputAs#1

Fori=1To[a65536].End(3).Row

len1=Application.CountA(Cells(i,1).EntireRow)

Iflen1=1Then

str=Cells(i,1)

Else

str=Join(Application.Transpose(Application.Transpose_

(Cells(i,1).Resize(1,len1))),",")

EndIf

Print#1,str

Next

Close#1

EndSub

4MapGIS下线明码文件到线文件的转化

4.1打开MapGIS软件的“图形处理”中的“文件转换”对话框,如图4所示。

首先输入已经准备好的MapGIS线明码文件,再输出MapGIS明码格式。至此,完成曲线的所有绘制过程。

4.2曲线的整饰

主要包括坐标轴的绘制、图例的制作、相关注释的添加等等,建议采用MapGIS的“移动坐标调整”、“点输入线”等功能来完成上述工作,以达到精确制图的目的,图件整饰完成后如图5所示。

5存在的问题和建议

本文主要涉及到了MapGIS线明码文件,建议合理的利用MapGIS点明码文件,这样可以快速完成对曲线的注释。

MapGIS作为一款优秀的国产基础地理信息系统软件平台,拥有强大的功能,并支持多种编程语言的二次开发,充分利用这一功能会给我们的工作和学习带来极大地便利和乐趣。

参考文献:

[1]李政,梁海英,李昊.VBA应用基础与实例教程[M].北京:国防工业出版社,2005.

[2]张滨生.利用MAPGIS快速制作点位数据图的一种方法[J].物化探计算技术,2001,23(1):90.

[3]ExcelHome.Excel应用大全.北京:人民邮电出版社.

猜你喜欢

偏移量物化号线
基于格网坐标转换法的矢量数据脱密方法研究
2020?年中国内地预计开通?91?条城轨交通线路
杭州地铁1号线临平支线接入9号线通信系统的改造
搅拌针不同偏移量对6082-T6铝合金接头劳性能的影响
基于最小二乘平差的全极化SAR配准偏移量估计方法
物的人化与人的物化——当代舞台美术的表演
档案:一种物化的文化形态
抛物化Navier-Stokes方程的降维仿真模型
大连轻轨3号线发生脱轨
基于Andriod多屏互动的遥控器设计