摘 要:全站儀目前已經(jīng)成為測(cè)繪領(lǐng)域重要的測(cè)量?jī)x器,特別是在地形圖碎部測(cè)量中,它以速度快、操作簡(jiǎn)單、成圖方便的優(yōu)點(diǎn)在測(cè)量界得到了廣泛應(yīng)用。但是,如果在操作過(guò)程中出錯(cuò),造成的重復(fù)工作量也是極大的。本文采用了計(jì)算機(jī)編程的方法來(lái)解決在全站儀碎部測(cè)量過(guò)程中將坐標(biāo)值輸反造成的測(cè)量坐標(biāo)與真值之間的解算問(wèn)題。 
關(guān)鍵詞:VB6.0;全站儀;三維坐標(biāo);數(shù)據(jù)解算 
  全站儀,即全站型電子速測(cè)儀(Electronic Total Station),是一種集光、機(jī)、電為一體的高技術(shù)測(cè)量?jī)x器,是集水平角、垂直角、距離(斜距、平距)、高差測(cè)量功能于一體的測(cè)繪儀器系統(tǒng)。因其一次安置儀器就可完成該測(cè)站上全部測(cè)量工作,所以稱之為全站儀。 
  隨著全站儀的普及,全站儀在地形圖測(cè)繪工作中得到了廣泛的應(yīng)用。在已知平面控制網(wǎng)點(diǎn)上安設(shè)儀器,后視另外已知平面控制網(wǎng)點(diǎn),便可完成設(shè)站,設(shè)站完成后便可進(jìn)行碎部點(diǎn)的測(cè)量。如果在全站儀設(shè)站過(guò)程中將坐標(biāo)的X、Y值輸反,在地形圖測(cè)繪過(guò)程中很難發(fā)現(xiàn),只有在地形圖測(cè)繪完成后,將全站儀內(nèi)的碎部點(diǎn)三維坐標(biāo)展繪到成圖軟件上才會(huì)發(fā)現(xiàn)。 
  X、Y值輸反后測(cè)量出的碎部點(diǎn)三維坐標(biāo)值到底與該碎部點(diǎn)的真實(shí)三維坐標(biāo)值存在什么樣的關(guān)系呢?我們假設(shè)在A點(diǎn)安設(shè)全站儀,B點(diǎn)作為后視點(diǎn),C點(diǎn)是我們的目標(biāo)點(diǎn),在X、Y值輸反的情況下,A點(diǎn)到C點(diǎn)的水平距離、天頂距、高差以及后視點(diǎn)、設(shè)站點(diǎn)與目標(biāo)點(diǎn)之間的水平角都是正確的,也就是說(shuō)在這種情況下我們測(cè)得的C點(diǎn)高程是沒(méi)有問(wèn)題的,剩下的就是X值與Y值得關(guān)系了。 
  我們知道我們由A點(diǎn)測(cè)量C點(diǎn)的坐標(biāo)的過(guò)程是這樣的: 
  Cx=Ax+△x 
  Cy=Ay+△y 
  其中△x=lAC×cosαaAC 
  △y=lAC×sinαAC 
  也就是說(shuō)只要找出在X、Y值輸反情況下測(cè)得的A-C的方位角與正常情況下測(cè)得的A-C之間的方位角之間的關(guān)系就可接算出正確的碎部點(diǎn)坐標(biāo)。 
  αAC=Αba+βBAC±180° 
 。ㄔ谒鶞y(cè)水平角為左角的情況下,上式成立。) 
  我們假設(shè)在X、Y輸反的情況下得到的A、B、C點(diǎn)分別為A’、B’、C’。 
  根據(jù)A’、B’、C’三點(diǎn)的平面坐標(biāo)我們可以反算它們之間的水平距離及方位角。 
  βB`A`C`= αA`C`-αB`A`±180° 
  根據(jù)以上公式,我們便可求出正常情況下A點(diǎn)到C點(diǎn)的方位角 。 
  αAC=αBA+βB`A`C`±180 
  另lA`C`=lAC 
  根據(jù)求得的αAC和lAC即可求出相應(yīng)的坐標(biāo)增量,從而求出C點(diǎn)的正確坐標(biāo)。通過(guò)VB6.0能夠很好的實(shí)現(xiàn)上述解算過(guò)程。 
  首先我們編程實(shí)現(xiàn)根據(jù)兩點(diǎn)坐標(biāo)反算方位的函數(shù),函數(shù)內(nèi)容如下: 
  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 
  在程序中根據(jù)上述函數(shù)首先求出αA`C`、αB`A`以及αB`A`,再根據(jù)以下公式求出αAC 
  βB`A`C`=αA`C`-αB`A`±180° 
  αAC=αBA+βB`A`C`±180 
  最后在程序里根據(jù)以下公式求出最終的C點(diǎn)正確坐標(biāo)。 
  △x=lAC×cosαAC 
  △y=lAC×sinαAC 
  Cx=Ax+△x 
  Cy=Ay+△y 
  下面以一個(gè)實(shí)際例子來(lái)說(shuō)明程序運(yùn)行過(guò)程及結(jié)算結(jié)果: 
  在Q1(3966947.745,20567254.362,183.5)點(diǎn)支設(shè)全站儀,后視點(diǎn)Q4(3967070.213,20567350.114,181.3),共觀測(cè)HB1、HB2、HB3、HB4、HB5 共5個(gè)碎部點(diǎn)。 
  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 
  解算后的碎部點(diǎn)坐標(biāo)為: 
  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 
  實(shí)驗(yàn)證明該程序解算后的碎部點(diǎn)三維坐標(biāo)完全正確,利用Vb6.0進(jìn)行計(jì)算機(jī)程序設(shè)計(jì)的方法來(lái)解決全站儀碎部測(cè)量過(guò)程中坐標(biāo)值輸反造成的碎部點(diǎn)測(cè)量值與真值之間的解算是可行的。 
  參考文獻(xiàn): 
  [1]李曉娥,張慶勇.利用VB編程實(shí)現(xiàn)全站儀數(shù)據(jù)格式的轉(zhuǎn)換[J].科技情報(bào)開(kāi)發(fā)與經(jīng)濟(jì),2005,17.