VB6.0物探线平面坐标推算程序设计
2010-07-30王宝江
王宝江
1 问题的提出
地质部门的测量任务中有许多是关于物探线的测量定线问题,按测量学分类属于直线的测设问题。该类问题放样点、线数据量很大,如何提取每条线的平面放样数据就成为摆在地质测量人员面前急需解决的问题。
现在地质及测量部门经常使用的成图软件有MAPGIS和加载在CAD基础上的南方CASS成图系统,都不具备按线的方向和间距提取大量坐标数据的功能,为此本人用VB6.0软件编制了一个推算物探线平面坐标数据的应用程序,推算后生成的数据文件为南方CASS数据的.DAT格式,可以在南方CASS成图软件中直接展绘。
2 处理思路
物探线一般要求5 m,10 m的点距,长度可达几千米,假定一条1 km的物探线点距5 m,则要测设201个点位。线距一般有50 m,100 m不等。而直线由起点和终点唯一确定直线的方向和距离。有了线的起点坐标和方位角就可以按下式计算间隔点的坐标:间隔点的 X(或 Y)坐标=起始点 X(或 Y)坐标+X(或 Y)方向的坐标增量×(间隔点号-起始点号);
现在的关键是按点距D和线的方位角α要求算出X方向和Y方向的坐标增量ΔX,ΔY。
ΔX=D ×cos(α);ΔY=D ×sin(α)。
注意:数学坐标格式为:X,Y与南方CASS格式中坐标格式相同,但在实际应用中的测量坐标格式为北N,东E格式。
程序结构示意图见图1。
3 具体实现
程序主界面见图2。
点击以上复选框,弹出如图3所示表单。
以下为线上点坐标增量计算程序的主要代码:
Private Sub Command1-Click()
Dim c
Dim cc
Dem“以下为将测量的方位角:度、分、秒(北东格式)装换为VB6.0要求的弧度格式。”
cc=(Int(fwj.Text)*3600+Int((fwj.Text-Int(fwj.Text))*100)*60+(fwj.Text*100-Int(fwj.Text*100))*100)/206264.81
Dem“以下为测量方位角转换为数学方位角。”
c=3.14159265358979/2-cc
Dem“进行坐标增量计算,如Xzl对应于线上点的X增量。”
Form1.Xzl.Text=Cos(c)*Form2.djg
Form1.Yzl.Text=Sin(c)*Form2.djg
Form1.Xjg.Text=Cos((c+3.14159265358979/2))*Form2.xjg
Form1.Yjg.Text=Sin((c+3.14159265358979/2))*Form2.xjg
Form1.jszl.Value=0
End Sub
主表单的程序相对简单,故不赘述。
输入全部数据的示例见图4。
以上示例中线号选择了按偶数增加。
输入必要的数据后先点击“推算坐标”再点击“显示结果”。本软件用Windows操作系统下普遍使用的文本编辑器NOTPAD.exe打开一个名称为Temp.dat的数据文件。
Temp.dat会在下一次推算数据时被刷新,故推算数据在确信正确无误后,应及时另存且不可与Temp.dat重名。
4 推算数据的检核
本软件默认安装于D:chy下。专用于物探线平面坐标的推算,推算后生成的数据文件为南方CASS数据的.DAT格式,可以在南方CASS成图软件中直接展绘。
现取推算后数据的展绘结果,用CASS的距离量测工具检核:
1)两点间实地距离=495.000 m,图上距离=495.000 mm,方位角=30°10′29.86″。2)两点间实地距离 =50.000 m,图上距离=50.000 mm,方位角 =300°10′28.90″。3)两 点间实地距 离 =200.000 m,图上距离=200.000 mm,方位角=300°10′30.31″。
经过实例检测:推算精度距离误差在2 000 m内远低于毫米级,角度误差低于秒级。实际使用中由于舍入到毫米即可满足需要,故推算数据保留到毫米,这使得在CAD中的查询方向有微小的误差,实际应用中低于秒级可忽略不计。
[1] 姬根杰.Excel VBA编程在导线测量中的应用[J].山西建筑,2008,34(1):367-368.