1、基于 EXCEL 和 VB 的邻带换算方法l56 测绘科学第 33 卷f1 日 J 接换算法的买质是把椭球面上的大地坐标作为过度坐标.首先把某投影带(比如 I 带)内有关点的平面直角坐标(l,y1),利用高斯投影反算公式换算成椭球面上的大地坐标(曰,lI),进而得到 L=+ll;根据第带的中央子午线 Lo 计算经差 l(1=LLo“);然后再由大地坐标(B,l), 利用高斯投影正算公式换算成邻带(第带)的平面直角坐标(,y).3.3 间接换算法计算公式1)高斯投影坐标反算公式:曰一 y+24M“/N3y(5+2922y4(1)z=1 一1(1+223)y 瓣一 H)y1(5+28t)+24)y
2、(2)2)高斯投影坐标正算公式:=+sin 胁 s+iv_it2sinBcos3B(5 一 f+9+4)l424p赤 sinBcosSB(6458f2“(3)pcosB/“+N曰(1 一 t2+椰+COS5(518t+f+14 一 58f)l“(4)120o.4 基于 Excel 环境的邻带换算实现方法由高斯投影反算公式(1),(2)及正算公式(3),(4)可见,坐标邻带换算是比较复杂的计算过程,人工计算容易出错且无法实现批量转换,同样也无法直接采用 Excel 编制公式实现换算.为此,在 Excel 环境下,通过 VB 编辑器编辑用户自定义函数(成为 Excel 的内置函数),再调用 (复制
3、)用户自定义函数实现批量转换.由于我国先后采用了 BJ54 大地坐标系(克拉索夫斯基椭球参数),GDZ80 国家大地坐标系 (1975 年国际椭球参数),并且目前两种坐标系均在使用,在函数设置及代码编写时,其中的椭球体参数可以按变量或常数两种情况来编制代码.当采用常数形式进行编程时,上述函数需针对两种大地坐标系的椭球参数分别创建,以适用于不同的坐标系;当采用变量形式进行编程时,则椭球参数作为起始数据输入.为了简化编程和直接利用文献中的“适用用于电算的高斯坐标计算的实用公式“,本文采用常量进行编程.为了区分不同坐标系的转换函数,在定义函数名称时,本文采用在函数名称前分别冠以“B表示 BJ54 大
4、地坐标系 “和“GGDz8O 国家大地坐标系“.Excel 表格简 I1VB 编辑器宙 llExcel 是格窗 11图 2 基于 Excel 和 VB 的邻带换算步骤如图 2 所示,基于 Excel 和 VB 的邻带换算分为三大步,依次在 Excel 表格窗口 ,VB 编辑器窗口(创建用户自定义函数),Excel 表格窗口进行.关键技术在第二步的VB 编辑器窗口的创建用户自定义函数中程序代码的编写.其中的“插入 “一“添加过程“一“ 编写代码“是循环过程,如对于 BJ54 大地坐标系 ,依次分别定义函数名称“BtransformB“(高斯投影坐标反算解算 B 函数),“BtransformL“
5、(高斯投影坐标反算 解算 L 函数),“BtransformX“(高斯投影坐标正算 解算 x 函数),“BtransformY“(高斯投影坐标正算 解算 Y 函数),并按高斯投影坐标反算,正算公式依次编写相应的程序代码.节录 BtransformX 函数源代码如下 :PublicFunctionBtransformX(n11,n21,x,Y)AsDoubleDimx21,y21,Bf!,bm!,z!,Ba!,la!,L011,L021,la01,nDimb.1.B2DimNF,M!,B0,134DimB6,B3B5,BlP0=18O/3.14159265pm=206265bt=(X/63675
6、58.4969)BTM=bt206265bd=BTM/360oSBT=Sin(bt)cbt=Cosfbt1cbf=cbtcbtBf=bt+(50221746+(293622+(2350+22cbf)cbf)cbf)SBTcbt0.0000000001BFM=Bf206265DF1=BFM/3600SBF=SinfBf)cbf=Cos(Bf)E=cbfcbfNF=6399698.902 一(21562.267 一(108.9730.612E)E)EB2=(0.5+0.003369E)SBFcbfB3=0.333333 一 f0.1666670.001123E)E134=0.25+(0.16161
7、+0.00562E)EB5=0.2 一 f0.166670.0088E)ENC=NFcbfz=Y/(NC)ZFzzB0=(1 一(B4 0.147ZF)ZF)ZFB2b=BfB0B1=(1 一(B3 一 B5ZF)ZF)zl=(nl631+B1P0LD=l/P0It)=LD 一 3n2/P0CB=Cos(b)SB=Sinfb)E2=Cos(b)Cos(b)n:6399596.652 一(21565.045 一(108.9960.603E2)E2)E2a0=32144.5189 一(135.3646 一(0.70340.o041E2)E2)E2第 2 期曾绍炳基于 EXCEL 和 VB 的邻带换
8、算方法 157a4=f0.25+0.00253E2)E20.04167a6=f0.1667E20.083)E2a3=(0.3333333+0.001123E2)E20.1666667a5=0.00878 一 f0.17020.20382E2)$E2LF=L0L0TY=6367452.1328bX=TY 一(a0 一(0.5+nLF)Sin(b)Cos(b)YX=1+(a3+a5$LF)$LFY=YXL0nCos(b)BtransformX=XEndFunction函数编程完成后,通过创建加载宏将其添加到“插入函数“ 中 ,以方便调用 ,.方法是在 Excel 中,选择“工具“ 一“宏“一“宏“
9、 命令(或者按 Alt+F8),在宏名框中键入创建的函数名.此时,“选项“ 应激活,否则,函数名输错,更正后单击“选项 “,在说明中键入对该函数使用的说明,再单击“确定“. 在 “插入函数“的“ 用户定义“ 中可见所创建的函数.5 应用实例在同一 excel 电子表格中,分别对 BJ54 大地坐标系(克拉索夫斯基椭球参数)的 6.带一 3.带,6.带.带和 GDZ80国家大地坐标系(1975 年国际椭球参数)的 6.一 3.,3.一任意带,任意带一任意带等五种邻带换算进行了试算,试算结果见图 3.图 3 应用实例试算结果1)B,C,D,E 等四列为起始数据,F,G,日,I 等四列为换算结果.2
10、)同一大地坐标系的邻带换算,每个坐标换算量(本例中设置了四个坐标换算量即曰,Y可根据需要设定)只需插入( 输入)一次计算公式.如计算大地经度L 时,选中单元格,在公式栏插入(或输入)相应的自定义函数,点击相应单元格的起始数据(函数变量),利用电子表格的相对引用(当相对引用被复制到其他单元格式,被粘贴公式中的引用将被更新,其单元格相对引用会改变,并指向与当前公式位置相对应的其他单元格),即单元格船的公式为=BtransformB(B8,C8,D8,E8)“,而其他对应坐标转换量的计算只需“复制“ 一“粘贴“即可实现批量换算.当计算第二点的大地经度 L 时,从鹞复制到G9,则公式变为“fx=Btr
11、ansformB(,69,D9,E9)“,以此类推.3)电子表格的大地经度曰(F 列)和大地纬度(G 列)的计算结果的数据形式(如单元格冈)35.27297035 即为25.2729.7035“,平面直角坐标保留三位小数 (可以根据需要设定位数).4)依据 “适用于电算的高斯坐标计算的实用公式“进行编程,试算结果的计算精度为:平面坐标可达0.001m,大地坐标可达 0.0001.6 结束语文中的 Excel 和 VB 相结合的方法不仅仅局限于坐标邻带换算,可用于解决测量及其他专业中较复杂或规模较大数据处理,具有实时,可视化等特点,表现出了其他程序难以比拟的优越性.笔者利用该方法已经开发出了部分
12、测量计算函数和一些测量数据的处理程序,也正在按照这个思路,构建基于 Excel 的测量计算函数库 ,进而开发以 Excel 电子表格为平台的测量计算软件,在测量实践中具有一定实用意义.参考文献1孔祥元,梅是义 .控制测量学(下)M. 武汉:武汉大学出版社,1998:38?87.黄茂军.基于 COM 的开放式地图投影变换组件的设计与实现D. 武汉:武汉大学,2002:32.35.隋海燕.几种坐标系统的相互关系及其在工程中的应用J. 东北公路,2003,26(1):4346.孔祥元,郭际明,刘宗泉.大地测量学基础M.武汉:武汉大学出版社,2001:64170.何建邦,间国年,吴平生.地理信息共享的
13、原理与方法M. 北京:科学出版社,2003:80.103.党亚民,等.图件更新北京 54 和西安 80 坐标系转换方法研究J.测绘科学,2006,31(3).WALKENBACHJ.Excel2003 公式与函数应用宝典(Excel2003formulas,WileyPublishing,lnc)fM.北京:电子工业出版社,2004.龚沛曾.VisualBasic 程序设计教程 M.北京:高等教育出版社,1998.TheneighboringzoneconversionvhasedonEXCELandVBAbstract:Thecoordinateneighbouringzoneconvers
14、ionistheinevitableresultoftheGausspmjection,andisthebridgeoftherealizationbetweendifferentzone(6.zone,3.zone,anyzone)coordinatetransformation.Itplaysanimportantroleinthesurveypractice.BasedontheExcelenvironmentandwiththehelpofVisualBasic(VB)languageprogramming,thisarticlediscussesthefoundationofuser
15、definitionfunction,andthesolutionmethodofthecoordinateneighbouringzoneconversionbyusingthisdefinitionfuBetion.Throughtheexampleconfirmation,thismethodcanbesuitableforbatchcoordinatetransformationofthedifferentzoneandellipsoidalparameter.Keywords:Excel;visualbasic;gaussprojection;coordinate;neighboringzoneconversionZENGShaobing(DepartmentofSueveying,EastChinaInstituteofTechnology,Fuzhou344000,China)j2345678