首页

  1. 首页
  2. 测绘论文
  3. 内容

利用VB6.0编程实现全站仪三维坐标数据解算

摘 要:全站仪目前已经成为测绘领域重要的测量仪器,特别是在地形图碎部测量中,它以速度快、操作简单、成图方便的优点在测量界得到了广泛应用。但是,如果在操作过程中出错,造成的重复工作量也是极大的。本文采用了计算机编程的方法来解决在全站仪碎部测量过程中将坐标值输反造成的测量坐标与真值之间的解算问题。 
关键词:VB6.0;全站仪;三维坐标;数据解算 
  全站仪,即全站型电子速测仪(Electronic Total Station),是一种集光、机、电为一体的高技术测量仪器,是集水平角、垂直角、距离(斜距、平距)、高差测量功能于一体的测绘仪器系统。因其一次安置仪器就可完成该测站上全部测量工作,所以称之为全站仪。 
  随着全站仪的普及,全站仪在地形图测绘工作中得到了广泛的应用。在已知平面控制网点上安设仪器,后视另外已知平面控制网点,便可完成设站,设站完成后便可进行碎部点的测量。如果在全站仪设站过程中将坐标的X、Y值输反,在地形图测绘过程中很难发现,只有在地形图测绘完成后,将全站仪内的碎部点三维坐标展绘到成图软件上才会发现。 
  X、Y值输反后测量出的碎部点三维坐标值到底与该碎部点的真实三维坐标值存在什么样的关系呢?我们假设在A点安设全站仪,B点作为后视点,C点是我们的目标点,在X、Y值输反的情况下,A点到C点的水平距离、天顶距、高差以及后视点、设站点与目标点之间的水平角都是正确的,也就是说在这种情况下我们测得的C点高程是没有问题的,剩下的就是X值与Y值得关系了。 
  我们知道我们由A点测量C点的坐标的过程是这样的: 
  Cx=Ax+△x 
  Cy=Ay+△y 
  其中△x=lAC×cosαaAC 
  △y=lAC×sinαAC 
  也就是说只要找出在X、Y值输反情况下测得的A-C的方位角与正常情况下测得的A-C之间的方位角之间的关系就可接算出正确的碎部点坐标。 
  αAC=Αba+βBAC±180° 
  (在所测水平角为左角的情况下,上式成立。) 
  我们假设在X、Y输反的情况下得到的A、B、C点分别为A’、B’、C’。 
  根据A’、B’、C’三点的平面坐标我们可以反算它们之间的水平距离及方位角。 
  βB`A`C`= αA`C`-αB`A`±180° 
  根据以上公式,我们便可求出正常情况下A点到C点的方位角 。 
  αAC=αBA+βB`A`C`±180 
  另lA`C`=lAC 
  根据求得的αAC和lAC即可求出相应的坐标增量,从而求出C点的正确坐标。通过VB6.0能够很好的实现上述解算过程。 
  首先我们编程实现根据两点坐标反算方位的函数,函数内容如下: 
  Public Function direct(px1 As Double, py1 As Double, px2 As Double, py2 As Double) As Double 
  If (py2 - py1) >= 0 And (px2 - px1) > 0 Then direct = Atn(Abs((py2 - py1)) / Abs((px2 - px1))) 
  If (py2 - py1) > 0 And (px2 - px1) < 0 Then direct = Pi - Atn(Abs((py2 - py1)) / Abs((px2 - px1))) 
  If (py2 - py1) < 0 And (px2 - px1) > 0 Then direct = 2 * Pi - Atn(Abs((py2 - py1)) / Abs((px2 - px1))) 
  If (py2 - py1) <= 0 And (px2 - px1) < 0 Then direct = Atn(((py2 - py1)) / ((px2 - px1))) + Pi 
  If (py2 - py1) > 0 And (px2 - px1) = 0 Then direct = Pi / 2 
  If (py2 - py1) < 0 And (px2 - px1) = 0 Then direct = 3 * Pi / 2 
  End Function 
  在程序中根据上述函数首先求出αA`C`、αB`A`以及αB`A`,再根据以下公式求出αAC 
  βB`A`C`=αA`C`-αB`A`±180° 
  αAC=αBA+βB`A`C`±180 
  最后在程序里根据以下公式求出最终的C点正确坐标。 
  △x=lAC×cosαAC 
  △y=lAC×sinαAC 
  Cx=Ax+△x 
  Cy=Ay+△y 
  下面以一个实际例子来说明程序运行过程及结算结果: 
  在Q1(3966947.745,20567254.362,183.5)点支设全站仪,后视点Q4(3967070.213,20567350.114,181.3),共观测HB1、HB2、HB3、HB4、HB5 共5个碎部点。 
  HB1,3966919.202,20567296.396,183.269 
  HB2,3966894.958,20567318.871,183.110 
  HB3,3966862.615,20567391.897,182.958 
  HB4,3966781.122,20567533.938,182.583 
  HB5,3966746.157,20567577.353,182.435 
  解算后的碎部点坐标为: 
  HB1,3966981.652,20567216.522,183.269 
  HB2,3966997.615,20567187.572,183.110 
  HB3,3967060.681,20567138.568,182.958 
  HB4,3967178.868,20567025.216,182.583 
  HB5,3967212.566,20566980.81,182.435 
  实验证明该程序解算后的碎部点三维坐标完全正确,利用Vb6.0进行计算机程序设计的方法来解决全站仪碎部测量过程中坐标值输反造成的碎部点测量值与真值之间的解算是可行的。 
  参考文献: 
  [1]李晓娥,张庆勇.利用VB编程实现全站仪数据格式的转换[J].科技情报开发与经济,2005,17. 

相关文章

回到顶部
请复制以下网址分享
利用VB6.0编程实现全站仪三维坐标数据解算
http://m.civilcn.com/cehui/chlw/1470188206276944.html