计算公路坐标的表格程序
- 格式:xls
- 大小:746.50 KB
- 文档页数:6
小白自学ExcelVBA道路坐标高程计算程序流程1声明1.1 本人是个工作时间不长测量施工员。
1.2听说想轻松愉快的干好测量得学门编程,又听说ExcelVBA是个简单的可视化的常用的……1.3 本人很懒,面对厚厚的全是“昏天暗地”代码的ExcelVBA教科书籍,实在是没心没力。
其实俺还是懂点儿VB编程的(学校学过“=”是赋值,if、while、end的意思,嘿嘿,还有画窗体图框,其他的就都还给老师了)。
1.4 谷歌、度娘,是咱的好帮手。
1.5 仰望的存在,神一般的存在,无私的化身!道路中边桩坐标计算程序120424.xls(王中伟”教授”QQ:595077)曲线坐标计算程序VBA 4.6.xls(陈超”中铁”QQ:295188316)陈师傅的VBA代码乍一看感觉比王老师的让人头痛,怎么说咱们也是个有理想有目标的人,要啃就啃硬骨头!就选~~~嘿嘿~~~王老师的程序吧!1.6 道路中边桩坐标计算程序120424.xls代码获取。
王老师、陈师傅担心不懂编程的人,不小心修改代码导致程序错误,设置了vba密码(个人认为),其次我跟他们不熟,没有正大光明的要的密码,于是求助谷歌度娘,这个关于VBA 密码破解,于是很不厚道的得到了密码,为了方便本次学习,又很不厚道的把道路中边桩坐标计算程序120424.xls的密码贴出来(df750726),神人勿怪呀!2 代码理解ing…我们通过密码打开vba代码窗口,大家可以先把每个表格打开浏览一下代码,是不是感觉很短呀,感觉应该是超级链接的意思,嘿嘿,主要的代码在模块“lx”里,打开下,代码多吧,这就是咱们要肯的骨头。
现在咱们冲呀!2.1 第一段代码理解貌似第一段代码是定义的意思“定义π值”、'定义桩号点”、“'定义坡段”、“'定义基本曲线”①Public Const PI As Double = 3.14159265358979谷歌翻译:Public Const PI As Double公共常量PI 作为双精度浮点型百度百科:双精度浮点数双精度浮点数(Double)用来表示带有小数部分的实数,一般用于科学计算,用8个字节(64位)存储空间,其数值范围为1.7E-308~1.7E+308,双精度浮点数最多有15或16位十进制有效数字,双精度浮点数的指数用“D”或“d”表示。
一个excle模板的制作在当今社会,excle的使用已经是越来越来频繁了,几乎涉及所有的行业,路桥施工也不例外。
我在某路桥公司曾经负责过某项目部的测量工作。
大家都知道,测量最主要的就是计算了,如坐标、高程、横坡度等。
我现在给大家推荐一款我自己编制的关于测量计算的excel模板.首先我会跟大家介绍一下模板的作用,然后再一一讲解此模板的制作过程.首先给大家看一下此模板的界面如下:也许大家咋一看,切~ 这算啥,我也会做这张表格,实在是太简单了.不错,如果仅仅是靠手动输入这样子的数字,也许只要懂一点点excle的人都会制作出这张表格吧。
不过,这张表格并不是你表面所看到的仅仅是几个数字而已,其内在的公式才是它的亮点。
也许这样讲大家还不是很清楚,我继续给大家截个图,看看它里面的公式是什么。
大家注意到上面的公式了吗,并不是仅仅是输入数字就完事的,它是一个自定义函数zb x(),那么后面的都是一样吗?完全正确,后面的都是自定义函数,它们分别是zby()、sqx()、hpz()、hpy()。
也许大家会问,恩,是不错,但是有什么用呢?那让我先给大家简述一下这个自定义函数的用法。
竟然是一个函数,那么它就必须要有一个自变量,这几个函数的自变量又是什么呢?其实这个模板里面所有函数的自变量只有一个,就是桩号。
什么意思?就是只要你给出任意一个桩号,都能得到其对应的坐标、中桩高程和横坡度.假设我们要K38+000~K38+200段落内每隔20M一个断面所有点的坐标、中桩高程、以及左右横坡。
我就用这个模板给大家演示一下(此模板暂时数据只针对黄祁高速公路六标项目部)。
先在桩号那一列把K38+000~K38+200输入进去,可不要真的把字母“K”和加号“+”给输进去,只用输入纯数字就行了,否则计算会出错,之所以在模板里显示的是那样子,只不过是自定义的单元格式而已。
第二步剩下的仅仅就是拖动公式了,后面的都是公式,所以可以一起拖下来,先选定后面的所有单元格,然后向下直接拖动至最后,那么你需要的数据就全部出来了。
新版程序把线元法和交点法已经集成在一个模块中了,用户只需修改JD程序和ZA程序中的数据部分即可,其余不需作任何的改动。
2.因为每条路高程计算不尽相同,且比较复杂,现在可利用PC机EXCEL计算好打印成表格带到工地上使用,所以本版程序未对线路高程序进行专门的编程计算,而是利用统计计算模式中来输入桩号(第一列X)及左、右高程(第二、三列Y,Freq),这种输入数据的方式最为直观,易发现错误,也易修改,输入完毕后运行S 程序对数据按桩号进行排序,在程序中通过调用GG程序来进行内插计算,SG=-1得左标高,SG=1得右标高(若SG输入0,则可进行一般的线性内插计算)。
3.在JD程序和XY程序中,先将一个计算单元的数据置入矩阵F中(1行8列或1行9列),这样程序可读性极好。
4.相比原CASIO4850程序操作习惯,作了一点小小的改动,测站坐标存在Z[10],N中,X坐标原存在M中容易被误操作修改,而设计标高存在M中,这样易于修改,因为CASIO5800没有IN,OUT功能,很不方便。
4.程序利用Z[2]变量值来判断是采用交点法还是线元法模型计算,Z[2]=0为线元法,否则为交点法。
一、PQX程序:计算中边桩坐标及近似的桩号反算,在运行模式直接调用。
① Z*10+→S:”XO”?S:S→Z*10+:”YO”?N:Prog “AU”② Lbl 2:?L:Prog “Z”:Prog “E”:1n→O:90→S③ Lbl 4:”JJ”?S:”YC”?O:SO=0 =>Goto 2‘原来lbl 后没有标号4的。
④ O=-1 =>Goto 6⑤ “X,Y”:R+OCos(Z+S)→X▲U+OSin(Z+S)→Y▲Prog“D”:Goto 4⑥ Lbl 6:Z*7+→X:Z*8+→Y:”XF”?X:”YF”?Y:XY=0 =>Goto 4⑦ X→Z*7+:Y→Z*8+:Pol(X-R,Y-U+1p):Z+S-J→J:”YC,DL,L”:ICos(J)→O▲ISin(J)→I▲L+I▲Goto 6二、P程序:在程序中提供一个自由运算的模式。
EXCEL快速计算任何难度的道路中线、边线坐标主程序Public i As IntegerPublic pi As DoubleSub TP()Dim ii As IntegerDim k(1000) As DoubleDim xzq, yzq, kq, xzh, yzh, kzh, xjd, yjd, kjd, khy, kyh As Double'直线区域pi = 3.14159265358979xzq = 71862.642yzq = 63474.651kq = 0 '因为直线连接终点为ZH点,与圆曲线起点为同一点,所以在直线区域不定义ZH点参数'直线区域'曲线区域xzh = 71858.3267yzh = 63375.2684kzh = 99.4763xhz = 71909.3687yhz = 63283.8076 '曲线区域定义内容有:ZH(坐标、里程)、HZ(坐标、里程)、JD(坐标、里程)khz = 212.3392 'R(半径)、LS(缓和曲线长度)、HY(里程)、YH(里程)xjd = 71855.658yjd = 63313.806kjd = 160.9966ls = 30r = 75khy = 129.4763kyh = 182.3385'曲线区域i = 2 '从第二格开始读取数据所以定义I=2ii = 1 '桩号从第一个开始启用,所以定义II=2Dok(ii) = Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 1) '定义桩号等于读取数据If Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 1) = "" Then Exit Do '当没有数据读取时退出循环If k(ii) < kq Then '若计算点超过计算起点给予提示并退出程序MsgBox ("猪啊!!你的输入的桩号居然超过计算起点桩号")Exit SubElseIf k(ii) <= kzh Then '若计算点在ZH点前,则进入直线程序Call zx(xzq, yzq, kq, xzh, yzh, kzh, k(ii))ElseIf kzh < k(ii) And k(ii) <= khy Then '若计算点在ZH和HY之间则调入前段缓和曲线程序Call qhhqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseIf khy < k(ii) And k(ii) <= kyh Then '若计算点在HY和YH之间则调入圆曲线程序Call yqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseIf kyh < k(ii) And k(ii) <= khz Then '若计算点在YH和HZ之间则调入后段缓和曲线程序Call hhhqx(xzh, yzh, kzh, xhz, yhz, khz, xjd, yjd, kjd, ls, r, k(ii))ElseMsgBox ("笨啊!!数据已超出计算范围了") '若出现超出范围的桩号则给与提示并退出程序Exit SubEnd Ifi = i + 1ii = ii + 1LoopEnd Sub直线模块Sub zx(ByV al xzq As Double, ByV al yzq As Double, ByV al kq As Double, ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ParamArray k())fw = fwj(xzh, xzq, yzh, yzq) '首先调入方位角程序计算直线方位角x = xzq + (k(ii) - kq) * Cos(fw) '然后根据桩号和长度计算出坐标值y = yzq + (k(ii) - kq) * Sin(fw)zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub圆曲线模块Sub yqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - kzh) '计算ZH点(因为以直缓点起算)到待求桩号的弧度长度ly = l - ls / 2 '计算圆弧长度p = ls ^ 2 / 24 / r - ls ^ 4 / 2688 / r ^ 3 '曲线内移值m = ls / 2 - ls ^ 3 / 240 / r ^ 2 '曲线切线长增量u = r * Sin(ly / r) + m '偏量坐标计算v = r * (1 - Cos(ly / r)) + p'调入方位角fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nq = n(fwq, fwh) '计算偏角方向,左偏为-1右偏为1'计算坐标x = u * Cos(fwq) - nq * v * Sin(fwq) + xzhy = u * Sin(fwq) + nq * v * Cos(fwq) + yzhd = (90 * (2 * l - ls) / pi / r) * pi / 180 '计算圆曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwq + d * nq '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub前缓和段Sub qhhqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - kzh) '计算测点到ZH点的距离u = l - l ^ 5 / 40 / r ^ 2 / ls ^ 2 + l ^ 9 / r ^ 4 / ls ^ 4 / 3456 '计算偏量v = l ^ 3 / 6 / r / ls - l ^ 7 / 336 / r ^ 3 / ls ^ 3'用公式二则以下两计算可省略(圆曲线和后缓和曲线也同理)Rem t = Atn(v / u)Rem s = Sqr(u ^ 2 + v ^ 2)'调入方位角计算fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nq = n(fwq, fwh) '计算偏角方向,左偏为-1右偏为1'结果计算Rem x = xzh + s * Cos(fwq + nq * t)Rem y = yzh + s * Sin(fwq + nq * t)x = u * Cos(fwq) - nq * v * Sin(fwq) + xzh '经过测试,计算结果中的两种公式计算结果是一样的y = u * Sin(fwq) + nq * v * Cos(fwq) + yzhd = (90 * l * l / pi / r / ls) * pi / 180 '计算缓和曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwq + d * nq '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub后缓和段模块Sub hhhqx(ByV al xzh As Double, ByV al yzh As Double, ByV al kzh As Double, ByV al xhz As Double, ByV al yhz As Double, ByV al khz As Double, ByV al xjd As Double, ByV al yjd As Double, ByV al kjd As Double, ByV al ls As Double, ByV al r As Double, ParamArray k())l = Abs(k(ii) - khz) '计算测点到HZ点的距离(后缓和曲线是以HZ点为起点)u = l - l ^ 5 / 40 / r ^ 2 / ls ^ 2 + l ^ 9 / r ^ 4 / ls ^ 4 / 3456 '计算偏量v = l ^ 3 / 6 / r / ls - l ^ 7 / 336 / r ^ 3 / ls ^ 3Rem t = Atn(v / u)Rem s = Sqr(u ^ 2 + v ^ 2)'调入方位角计算fwq = fwj(xjd, xzh, yjd, yzh) '计算ZH点方位角fwh = fwj(xhz, xjd, yhz, yjd) '计算HZ点方位角(此角作用是用来推算曲线是左偏还是右偏)'调入偏角判定nh = n(fwh, fwq) '计算偏角方向,左偏为-1右偏为1(注意:因为是从后HZ点起算,所以必须将HZ点方位角放在前ZH放在后)'结果计算Rem x = xzh + s * Cos(fwq + nq * t)Rem y = yzh + s * Sin(fwq + nq * t)x = xhz - (u * Cos(fwh) - nh * v * Sin(fwh)) '经过测试,计算结果中的两种公式计算结果是一样的y = yhz - (u * Sin(fwh) + nh * v * Cos(fwh))d = (90 * l * l / pi / r / ls) * pi / 180 '计算缓和曲线上的偏角(此句要点为角度必须转换为弧度即:pi/180)fw = fwh + d * nh '计算前进方位角zdfm = dfm(fw) '将弧度形式的前进方位角转换度分秒形式'输出坐标值以弧度和度分秒形式的前进方位角Workbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 2) = xWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 3) = yWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 4) = fwWorkbooks("单交点平曲线.xls").Worksheets("sheet1").Cells(i, 5) = zdfmEnd Sub偏角模块Function n(ByV al fw1 As Double, ByV al fw2 As Double) As Doublepj = fw1 + pi - fw2 '前进的右角pjIf pj - pi > 0 Then '当右角pj-pi 〉0时为左偏否则为右偏n = -1Else: n = 1End IfEnd Function方位角模块Function fwj(ByV al x1 As Double, ByV al x2 As Double, ByV al y1 As Double, ByV al y2 As Double) As Double'计算增量x0 = x1 - x2y0 = y1 - y2'由增量判断方位角所在象限,不同象限取不同的值If x0 = 0 And y0 > 0 Thenfwj = pi / 2 '当在大地坐标中偏量在X轴上的值时ElseIf x0 = 0 And y0 < 0 Thenfwj = 3 * pi / 2 '当在大地坐标中偏量在负X轴上的值时ElseIf x0 < 0 Thenfwj = Atn(y0 / x0) + pi '当在大地坐标中偏量在第二第三象限上的值时ElseIf x0 > 0 And y0 < 0 Thenfwj = Atn(y0 / x0) + 2 * pi '当在大地坐标中偏量在第四象限上的值时Elsefwj = Atn(y0 / x0) '当在大地坐标中偏量在第一象限上的值时End IfEnd Function度分秒模块Function dfm(ByV al ao As Double) As V ariantao = ao * 180 / pi '将弧度转化为度jd = Int(ao) '计算度jf = Int(ao * 60 - jd * 60) '计算分jmx = (ao - jd - jf / 60) * 3600 '计算秒jm = Left(jmx, 8) '因为拆分出来的秒数经常占到十多位,所以只取秒数的前八位dfm = jd & "°" & jf & "′" & jm & "″" '连接度分秒End Function边桩公式(此公式在电子表格中直接输入):=B2+J2*COS(D2+RADIANS(L2)+PI()) =C2+J2*SIN(D2+RADIANS(L2)+PI()) =B2+K2*COS(D2+RADIANS(M2)) =C2+K2*SIN(D2+RADIANS(M2))=B3+J3*COS(D3+RADIANS(L3)+PI()) =C3+J3*SIN(D3+RADIANS(L3)+PI()) =B3+K3*COS(D3+RADIANS(M3)) =C3+K3*SIN(D3+RADIANS(M3))=B4+J4*COS(D4+RADIANS(L4)+PI()) =C4+J4*SIN(D4+RADIANS(L4)+PI()) =B4+K4*COS(D4+RADIANS(M4)) =C4+K4*SIN(D4+RADIANS(M4))=B5+J5*COS(D5+RADIANS(L5)+PI()) =C5+J5*SIN(D5+RADIANS(L5)+PI()) =B5+K5*COS(D5+RADIANS(M5)) =C5+K5*SIN(D5+RADIANS(M5))=B6+J6*COS(D6+RADIANS(L6)+PI()) =C6+J6*SIN(D6+RADIANS(L6)+PI()) =B6+K6*COS(D6+RADIANS(M6)) =C6+K6*SIN(D6+RADIANS(M6))=B7+J7*COS(D7+RADIANS(L7)+PI()) =C7+J7*SIN(D7+RADIANS(L7)+PI()) =B7+K7*COS(D7+RADIANS(M7)) =C7+K7*SIN(D7+RADIANS(M7))=B8+J8*COS(D8+RADIANS(L8)+PI()) =C8+J8*SIN(D8+RADIANS(L8)+PI()) =B8+K8*COS(D8+RADIANS(M8)) =C8+K8*SIN(D8+RADIANS(M8))=B9+J9*COS(D9+RADIANS(L9)+PI()) =C9+J9*SIN(D9+RADIANS(L9)+PI()) =B9+K9*COS(D9+RADIANS(M9)) =C9+K9*SIN(D9+RADIANS(M9))=B10+J10*COS(D10+RADIANS(L10)+PI()) =C10+J10*SIN(D10+RADIANS(L10)+PI()) =B10+K10*COS(D10+RADIANS(M10)) =C10+K10*SIN(D10+RADIANS(M10))=B11+J11*COS(D11+RADIANS(L11)+PI()) =C11+J11*SIN(D11+RADIANS(L11)+PI()) =B11+K11*COS(D11+RADIANS(M11)) =C11+K11*SIN(D11+RADIANS(M11))=B12+J12*COS(D12+RADIANS(L12)+PI()) =C12+J12*SIN(D12+RADIANS(L12)+PI()) =B12+K12*COS(D12+RADIANS(M12)) =C12+K12*SIN(D12+RADIANS(M12))=B13+J13*COS(D13+RADIANS(L13)+PI()) =C13+J13*SIN(D13+RADIANS(L13)+PI()) =B13+K13*COS(D13+RADIANS(M13)) =C13+K13*SIN(D13+RADIANS(M13))=B14+J14*COS(D14+RADIANS(L14)+PI()) =C14+J14*SIN(D14+RADIANS(L14)+PI()) =B14+K14*COS(D14+RADIANS(M14)) =C14+K14*SIN(D14+RADIANS(M14))=B15+J15*COS(D15+RADIANS(L15)+PI()) =C15+J15*SIN(D15+RADIANS(L15)+PI()) =B15+K15*COS(D15+RADIANS(M15)) =C15+K15*SIN(D15+RADIANS(M15))=B16+J16*COS(D16+RADIANS(L16)+PI()) =C16+J16*SIN(D16+RADIANS(L16)+PI()) =B16+K16*COS(D16+RADIANS(M16)) =C16+K16*SIN(D16+RADIANS(M16))=B17+J17*COS(D17+RADIANS(L17)+PI()) =C17+J17*SIN(D17+RADIANS(L17)+PI()) =B17+K17*COS(D17+RADIANS(M17)) =C17+K17*SIN(D17+RADIANS(M17))=B18+J18*COS(D18+RADIANS(L18)+PI()) =C18+J18*SIN(D18+RADIANS(L18)+PI()) =B18+K18*COS(D18+RADIANS(M18)) =C18+K18*SIN(D18+RADIANS(M18))=B19+J19*COS(D19+RADIANS(L19)+PI()) =C19+J19*SIN(D19+RADIANS(L19)+PI()) =B19+K19*COS(D19+RADIANS(M19)) =C19+K19*SIN(D19+RADIANS(M19))=B20+J20*COS(D20+RADIANS(L20)+PI()) =C20+J20*SIN(D20+RADIANS(L20)+PI()) =B20+K20*COS(D20+RADIANS(M20)) =C20+K20*SIN(D20+RADIANS(M20))=B21+J21*COS(D21+RADIANS(L21)+PI()) =C21+J21*SIN(D21+RADIANS(L21)+PI()) =B21+K21*COS(D21+RADIANS(M21)) =C21+K21*SIN(D21+RADIANS(M21))=B22+J22*COS(D22+RADIANS(L22)+PI()) =C22+J22*SIN(D22+RADIANS(L22)+PI()) =B22+K22*COS(D22+RADIANS(M22)) =C22+K22*SIN(D22+RADIANS(M22))=B23+J23*COS(D23+RADIANS(L23)+PI()) =C23+J23*SIN(D23+RADIANS(L23)+PI()) =B23+K23*COS(D23+RADIANS(M23)) =C23+K23*SIN(D23+RADIANS(M23))呵呵,这个就是传说已久的EXCEL自动计算曲线坐标.给大家研究研究.欢迎在此基础上开发增加新模块。
道路坐标计算excel道路坐标计算是一种常见的数据处理方法,用于计算道路上的各个位置的经纬度坐标。
这种计算方法可以帮助我们确定道路上的具体位置,方便导航和定位等应用。
在实际的道路坐标计算中,常用的方法是使用Excel进行处理。
Excel是一款功能强大的电子表格软件,可以方便地进行数据处理和计算。
下面将介绍如何使用Excel进行道路坐标计算。
首先,我们需要准备好待处理的数据。
在Excel中,可以将道路划分为多个路段,并为每个路段标注起点和终点的位置。
这些位置可以用经度和纬度来表示。
接下来,我们可以使用Excel中的函数进行坐标计算。
常用的函数包括经纬度转换函数和距离计算函数。
1. 经纬度转换函数在进行坐标计算时,经纬度间的转换是非常重要的一步。
Excel提供了很多函数来进行经纬度转换,例如DEGREES、RADIANS、SIN、COS、TAN等函数。
通过这些函数的组合,我们可以将经纬度导航到计算坐标。
2. 距离计算函数除了经纬度转换,计算两点之间的距离也是道路坐标计算的重要一环。
Excel提供了很多函数来计算两点之间的距离,例如ACOS、COS、SIN、SQRT等函数。
通过这些函数的组合,我们可以计算出两点之间的距离。
在进行坐标计算之前,我们需要对数据进行预处理。
这包括将经纬度数据转换为数字格式,并确定坐标轴的单位。
在Excel 中,我们可以使用“格式单元格”功能,将经纬度数据转换为数字格式,以便进行后续计算。
接下来,我们可以使用Excel的函数来进行道路坐标计算。
以计算两点之间的距离为例,可以使用类似以下的公式:=ACOS(COS(RADIANS(90-纬度1))*COS(RADIANS(90-纬度2))+SIN(RADIANS(90-纬度1))*SIN(RADIANS(90-纬度2))*COS(RADIANS(经度1-经度2)))*6371在这个公式中,纬度和经度分别用纬度1、经度1、纬度2、经度2来表示。
公路施工测量坐标计算系统使用手册速通测绘使用手册一、程序运行平台:Win9X/WinME/WinNT/Win2000/WinXP。
二、程序开发平台:VC++.NET三、主要功能:积木法坐标计算、交点法坐标计算、互通式立体交叉、纵断面高程计算、放样辅助计算、交会定点计算、附闭合导线严密平差及近似平差、坐标转换、路基土石方计算、报表设计等。
漂亮的AutoCad 输出功能, 可以将原始数据发送到AutoCad,生成.dwg文件,生成的AutoCad平面线位图包含百米桩、公里桩、起讫桩号及主点标志(如ZY、YZ、ZH、HY、YH、HZ、YY、GQ)等,生成的图形坐标系为大地坐标系,图形按大地坐标系绘制,系统提供了“世界坐标系→大地坐标系”、“大地坐标系→世界坐标系”间的转换,系统支持整座互通N个匝道的绘图及AutoCad输出,可用于投标平面图及施工平面图的布置。
完整的打印预览及报表生成功能,在预览页面可将报表保存为EXCEL形式或网页形式。
报表中的“单位、制表、复核”等参数在系统菜单栏的“报表设置”项中设置。
对于“逐桩坐标报表”有两种选择,根据需要可选择全部打印或只打印中桩桩号、坐标及方位角,请在菜单栏的“报表设置”项中设置。
坐标计算时,可计算任意角度的边桩,边桩连线与中点切线右夹角默认为90°(在“右桩夹角(dms)”栏内不填写数据时),如边桩夹角为35°15′25.5″,应在“右桩夹角(dms)”栏内填入35.15255。
同时系统在加桩时可一次计算多个边桩,桩间米数为自动计算时桩的间距,支持“桩间米数”与“加桩桩号”同时输入计算,逐桩计算时系统会将各主点坐标一并输出,支持多个“加桩桩号”一次输入计算,如进行单独加桩计算时可删掉桩间米数,仅输出加桩结果,填写如下图:如上图填写可一次计算出20m倍数的中桩及K0+65、K0+126、K0+248、K0+397处6m、14m、23m、30m处左边桩及4m、8m、25m、30m处右边桩,其中右边桩与切线夹角为35°15′25.5″,计算结果如下图:四、软件界面说明软件采用类似Windows资源管理器界面,易上手,好操作,树形功能选择,表格式数据输入,真正体(一)菜单栏说明菜单栏由文件、数据、图形、报表、帮助五大主菜单组成,如下图:1、文件菜单包含六个一级子菜单,如下图:新建项目:清空当前数据表格,重新输入原始数据;打开项目:打开一个以前保存的.stc文件,数据自动导入原始数据表;保存项目:将当前原始数据表中的数据保存为.stc磁盘文件;打印预览:预览当前数据区显示的原始数据或计算结果,查看报表中打印格式;打印:打印当前数据区显示的原始数据或计算结果;退出系统:关闭应用程序;2、数据菜单包含六个一级子菜单,如下图:输出计算结果:单击此菜单,程序对当前数据区的原始数据进行计算,并在数据区显示计算结果;原始数据显示:单击此菜单,在数据区显示原始数据;计算结果显示:单击此菜单,在数据区显示计算结果;清空当前表格:删除数据区当前表格中的所有数据,删除后数据不能恢复;删除当前记录:删除数据区当前表格中一条选中的记录,删除后数据不能恢复;插入一条记录:在数据区当前表格中一条选中的记录前插入另一条记录,如果您在输入数据时丢掉一条记录,可以利用此菜单加入;3、图形菜单包含四个一级子菜单,二个二级子菜单,如下图:本地图形预览:单击此菜单,可以在数据区绘制图形进行预览;输出ACAD文件:单击此菜单,可以启动AutoCAD,将数据发送至AutoCAD系统生成图形,软件自动将AutoCAD 系统当前模型窗口的“世界坐标系”转换为“大地坐标系”,所绘制图形的坐标均为大地坐标;导出位图文件:单击此菜单,可以将数据区中绘制的图形保存为.bmp位图文件,供其它图形软件打开;世界坐标系→大地坐标系:启动AutoCAD,单击此菜单,可以将AutoCAD系统当前模型窗口中的“世界坐标系”转换为“大地坐标系”;大地坐标系→世界坐标系:由软件生成的AutoCAD文件已将坐标系转换为“大地坐标系”,在“大地坐标系”下绘制图形如直线、圆、修改文字等一切正常,如重新加入文字时生成的文字因坐标转换会出现文字翻转、镜向等情况,这时如果单击此菜单将坐标系转换为“世界坐标系”, 重新加入文字就会一切正常,全部处理完毕再将坐标系转换为“大地坐标系”。
:Excel 公路中线坐标计算现阶段我国公路工程中已普遍使用大地坐标进行线型的控制及测设,在施工中经常要对中线坐标进行复核、加密,才能满足公路工程施工的需要。
本文是结合公路工程的实际需要,利用Exce电子表格制作的用于由直线、圆曲线、缓和曲线组成的一般公路线型中桩、边桩等计算的通用模版,用于减轻计算工作的劳动强度和提高计算结果的准确度。
一、采用公式1 直线段1.1 中桩坐标计算公式1.2 边桩坐标计算公式2 缓和曲线段2.1 中桩坐标计算公式当P点位于顺时针方向时,其方位角为αE→p=αA→B+90°;当P点位于逆时针方向时,其方位角为αE→p=αA→B-90°。
2.2 边桩坐标计算公式3 圆曲线段3.1 中桩坐标计算公式当E点位于顺时针方向时取“+”,当E点位于逆时针方向时取“-”。
3.2 边桩坐标计算公式XP、YP——未知点P的坐标X1、Y1——各线型起点的坐标(第二曲线段为终点)XA、YA、XB、YB——P点边桩A点、B点的坐标(A为左侧、B为右侧)α1→2——直线段起点的方位角αA→B——各线形起点的切线方位角(第二曲线段为终点)L——P点距各线形起点的长度LS——缓和曲线段缓和曲线长R——各曲线段的半径β——P点的切线角(曲线左转时取“-”、曲线右转时取“+”)T1、T2——P点至边桩A、B的距离(A为T1、B为T2)二、计算模板的建立步骤表1-1表1-21.新建一个工作薄,在其中输入如表1所示的内容;2. 选中工作表A列,打开格式菜单,选中“单元格”,在单元格菜单中选中“数字”栏,自定义单元格格式为“K000+000.000”。
按此方法分别将其他列设置为如表1所示单元格格式;3. 将“4”行做为路线起点数据行,在“5”行中进行公式编辑;4.在“J5”单元格中输入“=IF(C5=4,RADIANS(IF((G5+H5/60+I5/60/60)<180,(G5+H5/60+I5/60/60)+180,(G5+H5/60+I5/60/60)-18 0)),IF(C5=5,RADIANS(IF(B5=0,G5+H5/60+I5/60/60-E5/2/D5*180/PI(),G5+H5/60+I5/60/60+E5/2/D5*180 /PI())),RADIANS(G5+H5/60+I5/60/60)))”;5.在“K5”单元格中输入“=A5-$A$4”;6.在“L5”单元格中输入“=$L$4+IF(C5=1,K5*COS(J5),IF(C5=2,2*D5*SIN(K5/2/D5)*IF(B5=0,COS(J5-K5/2/D5),COS(J5+K5/2/D5) ),IF(C5=3,(K5-K5^5/40/D5^2/E5^2)*COS(J5)+(K5^3/6/D5/E5-K5^7/336/D5^3/E5^3)*IF(B5=0,COS(J5-90 *PI()/180),COS(J5+90*PI()/180)),IF(C5=4,(K5-K5^5/40/D5^2/E5^2)*COS(J5)+(K5^3/6/D5/E5-K5^7/33 6/D5^3/E5^3)*IF(B5=0,COS(J5-90*PI()/180),COS(J5+90*PI()/180)),2*D5*SIN(K5/2/D5)*IF(B5=0,COS( J5-K5/2/D5),COS(J5+K5/2/D5))))))”;7.在“M5”单元格中输入“=$M$4+IF(C5=1,K5*SIN(J5),IF(C5=2,2*D5*SIN(K5/2/D5)*IF(B5=0,SIN(J5-K5/2/D5),SIN(J5+K5/2/D5) ),IF(C5=3,(K5-K5^5/40/D5^2/E5^2)*SIN(J5)+(K5^3/6/D5/E5-K5^7/336/D5^3/E5^3)*IF(B5=0,SIN(J5-90 *PI()/180),SIN(J5+90*PI()/180)),IF(C5=4,(K5-K5^5/40/D5^2/E5^2)*SIN(J5)+(K5^3/6/D5/E5-K5^7/33 6/D5^3/E5^3)*IF(B5=0,SIN(J5-90*PI()/180),SIN(J5+90*PI()/180)),2*D5*SIN(K5/2/D5)*IF(B5=0,SIN( J5-K5/2/D5),SIN(J5+K5/2/D5))))))”;8.在“N5”单元格中输入“=IF(B5=0,J5-RADIANS(IF(C5=2,K5/D5*180/PI(),IF(C5=3,K5^2/2/D5/E5*180/PI(),IF(C5=4,K5^2/2/D5 /E5*180/PI(),IF(C5=5,K5/D5*180/PI()))))),J5+RADIANS(IF(C5=2,K5/D5*180/PI(),IF(C5=3,K5^2/2/D5 /E5*180/PI(),IF(C5=4,K5^2/2/D5/E5*180/PI(),IF(C5=5,K5/D5*180/PI()))))))”;9.在“P5”单元格中输入“=IF(C5=4,L5+O5*COS(N5+90*PI()/180),L5+O5*COS(N5-90*PI()/180))”;10.在“Q5”单元格中输入“=IF(C5=4,M5+O5*SIN(N5+90*PI()/180),M5+O5*SIN(N5-90*PI()/180))”;11.在“S5”单元格中输入“=IF(C5=4,L5+O5*COS(N5-90*PI()/180),L5+O5*COS(N5+90*PI()/180))”;12.在“T5”单元格中输入“=IF(C5=4,M5+O5*SIN(N5-90*PI()/180),M5+O5*SIN(N5+90*PI()/180))”;13.选定“5行”向下复制到表格最后一行;14.点击“文件”菜单中的“另存为”选项,输入文件名为“坐标计算”在文件类型中选择为“模版”并点击“保存”。
测量资料使用说明测量资料程序是一款简单实用的测量程序,为用户提供了一个更高效更准确的功能操作,帮助用户轻松完成《水准仪测量记录表》、《全站仪平面位置检测表》、《全站仪放线记录表》等的制作,包含导线点、水准点、平曲线(线元法)、纵断面、横坡超高计算等多个方面,实用程序,用户可以快速进行测量资料的记录、表格数据录入、表格管理等操作,方便快捷。
目录(一) 、功能特色 (2)(二) 、平曲线 (3)(三) 、断链 (5)(四) 、竖曲线(纵断面) (5)(五) 、超高数据表 (6)(六) 、标准路面参数表 (7)(七) 、水准点成果表 (7)(八) 、导线点成果表 (8)(九) 、原始数据表(进入正题) (9)(十) 、自动计算 (10)(十一) 重复九、十自动生成记录表 (11)(一)、功能特色1、本程序利用EXCEL、WPS电子表格,自动生成水准仪测量记录表、平面位置检测记录表、全站仪放线记录表。
2、适用于任何版本的EXCEL、WPS,无需安装,直接使用。
3、自动转点、自动计算坐标、自动偏差。
4、自动计算路面高程,减少数据输入。
5、支持交点法、线元法。
6、支持断链。
7、可以根据需求修改属于你自己项目的记录表。
8、除断链桩号前可以加”*”,其余桩号都应输入数字。
(二)、平曲线1、在空白处输入平曲线参数:(点号、交点坐标、交点桩号、半径、缓和曲线长度)备注:输入数据须为数字;没有缓和曲线,输入0。
2、点击“计算”按钮,自动计算(转角值、圆曲线长、切线长、主点桩号)(三)、断链在空白处输入断链桩号(备注:长链的断链重复桩号,在后断链桩号前加”*”)断链表(四)、竖曲线(纵断面)1、在空白处输入竖曲线参数:(桩号、标高、半径)2、点击“计算”按钮,自动计算(切线长、外距、竖曲线起点桩号、竖曲线终点桩号、转坡角、纵坡)(五)、超高数据表在空白处输入超高参数(桩号、横坡值、超高方式)备注:1、输入横坡变化点桩号处数据2、函数Lx(“缓和曲线长”, “超高横坡”, “路拱横坡”)计算路基由正常路拱横坡到单向路拱横坡时的长度;(六)、标准路面参数表在空白处输入标准路面构造参数备注:”中桩(判断路面宽度)”列为该段路面变化点终点桩号(七)、水准点成果表在空白处输入该线路全部的水准点参数备注:函数fszh(“X坐标”,”Y坐标”),计算XY对应的桩号(八)、导线点成果表在空白处输入该线路全部的导线点参数备注:函数fszh(“X坐标”,”Y坐标”),计算XY对应的桩号导线点成果表(九)、原始数据表(进入正题)该表是生成记录表的依据1、在”桩号”、”偏距”、”高程”、”工程部位”列,输入数据①函数lmgc0(“桩号”,”偏距”),计算路面高程;②“工程部位”单元格以下内容为空白,视为一段工程。
曲线道路坐标计算(Excel)曲线道路坐标计算§1 曲线要素计算缓和曲线是在不改变直线段方向和保持圆曲线半径不变的条件下,插入到直线段和圆曲线之间的。
其曲率半径ρ从直线的曲率半径∞(无穷大)1逐渐变化到圆曲线的半径R,在缓和曲线上任意一点的曲率半径ρ与缓和曲线的长度l成反比,以公式表示为:ρ∝ 或ρ⋅l=C(C为常数,称l曲线半径变更率)。
当l=lo时,ρ=R,应有C=ρ⋅l=R⋅lo以上几式是缓和曲线必要的前提条件。
在实际应用中,可采取符合这一前提条件的曲线作为缓和曲线。
常用的有辐射螺旋线及三次抛物线,我国采用辐射螺旋线。
为了在圆曲线与直线之间加入一段缓和曲线lo,原来的圆曲线需要在垂直于其切线的方向移动一段距离p,因而圆心就由O'移到O,而原来的半径R保持不变,如图。
由图中可看出,缓和曲线约有一半的长度是靠近原来的直线部分,而另一半是靠近原来的圆曲线部分,原来圆曲线的两端其圆心角βo相对应的那部分圆弧,现在由缓和曲线所代替,因而圆曲线只剩下缓圆点(HY)到圆缓点(YH)这段长度即ly。
βo为缓和曲线的切线角,即缓圆点或圆缓点切线与直缓点或缓直点切线的交角,亦即圆曲线HY→YH两端各延长γ为缓和曲线总偏角,即从直缓点(ZH)测设缓圆点(HY)或从缓直点(HZ)测设圆缓点(YH)的偏角。
q为切线增量(切垂距),即ZH(或HZ)到从圆心O向ZH(或HZ)的切线作垂线垂足的距离。
p为圆曲线内移值,即垂线(从圆心O向ZH(或HZ)的切线作垂线)长与圆曲线半径R之差。
lo部分所对应的圆心角。
2§1.1 不等长缓和曲线要素计算:在铁路曲线测设中,线路曲线一般是由相等的两条缓和曲线中间加一个圆曲线构成,有时还会出现由两个不等长的缓和曲线中间加一个圆曲线构成的特殊情况,如图:缓和曲线长分别为lo1、lo2 ,切线长分别为T1、T2 ,曲线偏角(线路转角)为α,圆曲线半径为R,圆曲线长为ly ,曲线长为L ,外矢距为E ,切曲差为J,(缓和曲线后)圆曲线内移值分别为p1、p2,(缓和曲线)切线增量分别为q1、q2,缓和曲线偏角分别为βo1、2βo2 ,回旋线参数分别为A12=Rlo1、A2=Rlo2各曲线要素计算公式如下:llq1=o1-o122240R3T2=q2+(R+p2)tgα2+(p1-p2)sinαllq2=o2-o222240Rllp1=o1-o1324R2688Rllp2=o2-o2324R2688R2243βo1=lo118090lo1⋅= 2RππRβo2=lo218090lo2⋅= 2RππRL=lo1+lo2+(α-βo1-βo2)πR180︒T1=q1+(R+p1)tgα2+(p2-p1)sinα从以上公式可以看出,当lo1=lo2时,就是等长(对称)缓和曲线的情况。
利用EXCE L 进行道路中边线逐桩坐标计算张宝利1,薛志勤2(1.西北农林科技大学资源与环境学院,陕西杨凌 712100;2.华南农业大学信息与软件学院,广州 510642)摘要:利用坐标增量的基本思想,将道路曲线坐标的计算归结为3种最基本的形式———直线段、圆曲线段、缓和曲线段,直接计算出中、边线的测量坐标,省去了切线支距法坐标向测量坐标的转换过程,简化了计算思路,节约了计算量。
并利用办公软件Excel 的强大计算功能进行实例计算。
关键词:Excel;道路边线;道路中线;逐桩坐标;圆曲线;缓和曲线中图分类号:U452.1文献标志码:B文章编号:1672-741X (2008)03-0302-03Calcul ati on of Coordi n ates of St akes on Centerli n e and Si deli n e Usi n g ExcelZHANG Baoli 1,XUE Zhiqin2(1.College of R esou rces and Environm en t,N orthw est A &F U niversity,Yangling 712100,Shanxi,Ch ina;2.College of Infor m ation and S oft w are,S outh China A gricultural U n iversity,Guangzhou 510642,China )Abstract:The coordinate calculati on of the high way curves is divided int o three basic types,i .e .,straight secti on,cir 2cular curve and transiti on curve,on basis of the coordinate incre ment p rinci p le .W ithout coordinate transf or mati on,the survey coordinates of the stakes on the alignment of the centerline and sideline are directly worked out,which si m p lifies the calculati on p rinci p le and reduces the calculati on quantity .Further more,coordinate calculati on is made f or p r oject cases by using the str ong calculati on functi ons of Excel .Key words:Excel;high way sideline;highway centerline;coordinates of stakes;circular curve;transiti on curve不论是在铁路还是公路的设计和建设中都不可避免地遇到大量的曲线计算。