利用便携式计算机编程快速计算道路中线坐标

来源 :城市建设理论研究 | 被引量 : 0次 | 上传用户:rjviva
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文介绍了道路中线坐标计算公式,实现整条线路统一连续计算中桩坐标的编程思路。采用本文的思路编写程序,能快速求解中线上任一点坐标,给道路放样工作带来了便捷。
  关键词:中桩坐标;计算公式; 编程;统一计算;放样
  Abstract: This paper introduces the calculation formula of coordinate center of road, realize the unity of the whole line continuous programming calculation of pile coordinates. By using this program, can quickly solve the midline of any point coordinates, to the road layout work brings convenient.
  Key words: pile coordinate; calculation formula; programming; unified computing; lofting
  中图分类号:F224-39文献标识码:A 文章编号:2095-2104(2013)
  
  
  1前言
  近几年来,随着我国经济社会高速发展,道路交通建设步伐不断加快,各级别特别是高等级公路建成了很多,更多的道路工程在陆续上马。在道路建设初期和施工期,都需要我们测绘人员对其进行中线放样。中线一般由直线段、缓和曲线段、圆曲线段组成,设计文件中提供线路起点、交点、终点坐标以及曲线半径、缓和曲线长度、平曲线要素、曲线主点桩号等。利用传统方法进行放样,特别是曲线放样,步骤烦,速度慢,放样精度不高,还要受通视条件影响,野外作业时,如果需要用坐标来精确放样中桩,得现场分步计算,输入数据多,费时且容易算错。在生产实践中,笔者通过编程实现了整条线路统一连续计算中桩坐标,在道路中线放样时,只需以线路中线的桩号为引数就可求得中线上相应点的坐标,采用全站仪、GPS RTK等先进的测绘仪器进行线路中线放样极为便利,大大提高了中线放样的效率和准确度。
  
  2计算公式
  2.1 直线中线坐标计算
  已知直线起点坐标(X0,Y0)和直线前进方位角F,则直线前进方向上距起点S的待求点坐标(Xi,Yi)为:
  Xi=X0+S·CosF
  Yi=Y0+S·SinF (1)
  2.2 曲线中线坐标计算
  在推导曲线中线坐标计算公式之前,先将曲线要素计算公式叙述如下:
  无缓和曲线的圆曲线的曲线要素计算公式为:
  T=R·Tanα2
  L= R·α (2)
  E=R·Secα2-R
  q=2·T-L
  (2)式中:R为曲线半径,α为线路转角(以弧度为单位,角度单位下同),T为切线长,L为曲线长,q为切曲差。
  有缓和曲线的圆曲线的曲线要素计算公式为:
  T=m+(R+p)·Tanα2β0= L0 /(2·R)
  L= R·(α-2·β0)+2·L0 (3) m= L0/2-L03/(240·R2)(4)
  E=(R+p)·Secα2-Rp= L02/(24·R)
  q=2·T-L
  (3)式中L0为缓和曲线长(两边相等);m为加设缓和曲线后使切线增长的距离;p为加设缓和曲线后,圆曲线相对于切线的内移量;β0为缓和曲线角度。m、p、β0为缓和曲线参数,按(4)式计算。
  2.2.1 无缓和曲线的圆曲线中线坐标计算
  如图1所示,圆曲线上任一点P的坐标(Xi,Yi),可利用切点ZY的坐标、切线方位角(即ZY至JD方位角F)、弦线与切线夹角k以及弦长S来计算,而切点ZY的坐标可由已知的交点坐标、T长和切线方位角F来推算。设Li为点P至切点的弧长,则:
  k=Li/(2·R)
   S=2·R·Sink
  Xi=XZY+S·Cos(F+w·k) (5)
  Yi=YZY+S·Sin(F+w·k)
  式中:w为线路偏转方向系数,线路左转w=-1,线路右转w=+1,下同。
  
  
  图1图2
  
  2.2.2 缓和曲线中线坐标计算
  缓和曲线可分为两种情况。一是用来连接直线和圆曲线的缓和曲线,其曲率半径从无穷大到圆曲线半径;二是用来连接不同半径圆曲线之间的缓和曲线。在一般的公路线形中很少碰到后者(笔者暂时还未遇到这种复合曲线),在此,我们只讨论前者中线坐标计算公式。
  如图2所示,以直缓点ZH为原点,过ZH的缓和曲线切线为x轴,ZH点上缓和曲线半径为y轴,建立相对直角坐标系。设Li为缓和曲线上任一点P至ZH点的曲线长,则点P在此坐标系中的坐标为:
  xi=Li-Li5/(40·R2·L02)+…
  yi=-w·[Li3/(6·R·L0)-Li7/(336·R3·L03)+…](6)
  对其进行坐标转换,得到该点在国家统一的或地方独立的平面坐标系中的坐標:
  Xi=XZH+yi·cosθ-xi·Sinθ
  Yi= YZH+yi·Sinθ+xi·Cosθ (7)
  (7)式中:θ为相对直角坐标系逆时针旋转角度,等于ZH至JD方位角F-π/2。 (XZH,YZH)为ZH点的坐标,可由已知的交点坐标、T长和F来推算。
  2.2.3有缓和曲线的圆曲线中线坐标计算
  对于有缓和曲线的圆曲线中线坐标计算,关键是先求出圆曲线起点坐标及该点处的切线方位角,然后就可按(5)式来计算。此时,Li为圆曲线上任一点至圆曲线起点的弧长。
  如图2所示,圆曲线起点HY坐标可由ZH点坐标和缓和曲线长L0按(6)式(7)式计算,切线方位角等于ZH点至JD的方位角F+w·β0。
  3编程思路
  为了使整条线路能统一起来连续计算中桩坐标,首先得定义此条线路。在程序中把交点的坐标、曲线半径、缓和曲线长度定义为一维数组,按设计文件输入这些已知数据,计算出交点间距、线路前进方位角、转角、曲线长、切线长以及交点里程等线路其它要素,也保存在一维数组中。线路转角有正负性,为正角时线路右转,为负角时线路左转。这样,整条线路的位置、线形、走向就在计算机中唯一地存在了。接下来,输入线路上任一中桩的桩号,判断出该中桩位于整条线路中哪段中线上,调用相应计算模块(计算本文2中几种线形中桩坐标的过程或函数),求出其坐标。
  如何判断输入的中桩桩号位于整条线路中哪段中线上呢?这是整个程序的关键。根据里程,利用循环语句很容易判断出待求中桩位于哪两个交点间,然后判断是位于小号端的曲线上,还是位于大号端的曲线上,还是位于中间的直线上。如在曲线上,判断其位于缓和曲线上,还是位于圆曲线上。如图3所示,L(i)、L(i+1)分别是JD(i)、JD(i+1)的里程,LYH 、LHZ、 LZH、LHY分别为YH点、HZ点、ZH点、HY点的里程,设待求中桩里程为LC,则上述判断过程可用图4表示。
  在程序中加入放樣计算模块,求出中桩坐标后,就可解算出放样数据——方位角和距离。
  
  图3
  
  
  
  图4:流程图
  
  4结束语
  1995年7月,笔者利用上述的方法和思路,在SHARP PC—E500袖珍计算机固化BASIC环境中编写出程序,实现了整条线路中桩坐标统一连续计算,可计算线路上任意里程的中桩坐标和放样数据。首次应用于苏州观山机动车驾驶员培训基地道路测量项目中,在生产实践中检验了程序。此后,该程序广泛应用于各个道路测量项目中,为线路中线放样提供了便利,提高了外业效率。
  当然,可进一步扩充程序的功能,如复合曲线中线坐标计算、线路边桩坐标计算等,使程序更为完善。也可用其它高级语言编程,在其它类型掌上电脑或笔记本电脑上运行计算。
  
  参考文献
  [1]李青岳主编.工程测量学.北京:测绘出版社,1984年6月
  
  
  
  说明:笔者1993年8月至2001年12月,在江苏苏州地质工程勘察院任职,从事工程测量工作。
  附PC—E500 BASIC语言环境下程序代码:
  8 CLEAR
  10 A$="#######.###":B$="########.###":C$="####.###":D$="###.####"
  15 INPUT "Jiao Dian Ge Shu: ";N
  20 DIM X(N+1),Y(N+1),L(N+1),D(N),Z(N),F(N),HC(N),R(N+1),L0(N),T(N)
  25 WAIT 0
  30 PRINT "QI DIAN ZHUO BIAO":INPUT "X=";X(0):INPUT "Y=";Y(0)
  40 FOR I=1TO N
  45 PRINT "JIAO DIAN";I;"ZHUO BIAO"
  50 PRINT "X";I;"=";:INPUT X(I)
  60 PRINT "Y";I;"=";:INPUT Y(I)
  70 NEXT I
  80 PRINT "ZHONG DIAN ZHUO BIAO":INPUT "X=";X(N+1):INPUT "Y=";Y(N+1)
  90 FOR I=0TO N
  100 X=X(I+1)-X(I):Y=Y(I+1)-Y(I)
  110 D(I)=POL (X,Y)
  120 IF Z<0 LET Z(I)=Z+360 ELSE Z(I)=Z
  130 NEXT I
  140 FOR I=1TO N
  142 ZI=Z(I)-Z(I-1)
  144 IF ZI>180 LET F(I)=ZI-360:GOTO 150
  146 IF ZI<-180 LET F(I)=ZI+360:GOTO 150
  148 F(I)=ZI
  150 NEXT I
  160 INPUT "QI DIAN LI CHEN=";L(0)
  170 L(1)=L(0)+D(0)
  190 FOR I=1TO N
  200 PRINT "R";I;"=";:INPUT R(I)
  205 IF R(I)=0 THEN 223
  210 IF R(I)<2500 THEN INPUT "L0=";L0(I)
  223 NEXT I
  224 PRINT " QI DIAN":A=L(0):GOSUB 900
  226 PRINT "X=";USING A$;X(0);:PRINT "Y=";USING B$;Y(0):WAIT :PRINT
  227 FOR I=1TO N
  228 X=D(I-1):Y=DMS Z(I-1):GOSUB 1000
  229 CLS :WAIT 0:PRINT "S(";I-1;"-";I;")=";USING C$;X;:PRINT "a(";I-1;"-";I;")=";USING D$;Y:WAIT :PRINT
  230 WAIT 0:PRINT " IP";I:A=L(I):GOSUB 900
  240 PRINT "X=";USING A$;X(I);:PRINT "Y=";USING B$;Y(I)
  250 WAIT :Y=DMS F(I):GOSUB 1000:PRINT "ap=";Y
  260 IF R(I)=0 LET L(I+1)=L(I)+D(I):GOTO 300
  261 F=ABS F(I):GOSUB 840
  263 L(I+1)=L(I)+D(I)-Q
  265 CLS :PRINT " R(";I;")=";R(I)
  267 IF L0(I)>0THEN PRINT " L0=";L0(I)
  270 X=T(I):GOSUB 1000:PRINT "T=";X
  271 X=HC(I):GOSUB 1000:PRINT "L=";X
  272 X=E:GOSUB 1000:PRINT "E=";X
  273 X=Q:GOSUB 1000:PRINT "q=";X
  275 ZH=L(I)-T(I):HY=ZH+L0(I):QZ=ZH+HC(I)/2:HZ=ZH+HC(I):YH=HZ-L0(I)
  278 IF ZH=HY THEN 290
  280 PRINT " ZH":A=ZH:GOSUB 900
  282 PRINT " HY":A=HY:GOSUB 900
  283 PRINT " QZ":A=QZ:GOSUB 900
  284 PRINT " YH":A=YH:GOSUB 900
  285 PRINT " HZ":A=HZ:GOSUB 900:GOTO 300
  290 PRINT " ZY":A=ZH:GOSUB 900
  291 PRINT " QZ":A=QZ:GOSUB 900
  295 PRINT " YZ":A=HZ:GOSUB 900
  300 NEXT I
  310 X=D(N):Y=DMS Z(N):GOSUB 1000
  320 CLS :WAIT 0:PRINT "S(";N;"-";N+1;")=";USING C$;X;:PRINT "a(";N;"-";N+1;")=";USING D$;Y:WAIT :PRINT
  330 WAIT 0:PRINT "ZHONG DIAN"
  340 A=L(N+1):GOSUB 900
  350 PRINT "X=";USING A$;X(N+1);:PRINT " Y=";USING B$;Y(N+1):WAIT :PRINT
  360 CLS :WAIT 0:PRINT "FANG YANG JI SUAN"
  362 PRINT "JIA ZHAN DIAN"
  363 PRINT "ZHONG XIAN SHANG?(Y OR N)";:INPUT AA$
  364 IF AA$="Y"THEN GOSUB 385: XA=XB:YA=YB ELSE INPUT "XA=";XA,"YA=";YA
  366 PRINT "DING XIANG DIAN"
  367 PRINT "ZHONG XIAN SHANG ?(Y OR N)";:INPUT AA$
  368 IF AA$="Y"THEN GOSUB 385ELSE INPUT "XB=";XB,"YB=";YB
  369 GOSUB 1300:WAIT :PRINT
  370 CLS :WAIT 0
  372 GOSUB 385:GOSUB 1300
  375 PRINT "HUAN ZHAN?(Y OR N)";:INPUT LL$
  380 IF LL$="Y" THEN 360 ELSE 370
  385 D=1000
  390 PRINT "ZHONG XIAN ZHUANG HAO:";:INPUT LC
  400 IF L(0)-0.001  405 PRINT "WU XIAO,ReENTER DATA":GOTO 390
  408 CLS :A=LC:PRINT "ZHUANG HAO:";:GOSUB 900
  410 FOR I=0TO N
  420 IF LC  430 XN=REC (T(I),Z(I))+X(I):YN=Z+Y(I)
  435 O=Z(I)
  436 IF I=N LET XO=X(N+1):YO=Y(N+1):ZH=L(N+1):GOTO 460
  440 XO=REC (T(I+1),Z(I)+180)+X(I+1):YO=Z+Y(I+1)
  450 ZH=L(I+1)-T(I+1)
  460 IF LC  470 IF LC=INT (ZH*D+0.5)/D LET XB=XO:YB=YO:GOTO 710
  480 B=XO:C=YO:B0=O+270
  490 R=R(I+1):L0=L0(I+1)
  500 IF F(I+1)<0 LET W=-1 ELSE W=1
  520 IF L0=0 LET L=LC-ZH:GOSUB 1500:GOTO 710
  530 HY=ZH+L0:S=L0:GOSUB 1700:XHY=XO+TX:YHY=YO+TY
  540 IF LC=INT (HY*D+0.5)/D LET XB=XHY:YB=YHY:GOTO 710
  550 IF ZH  560 L=LC-HY:O=O+90*L0*W/PI /R:B=XHY:C=YHY
  570 GOSUB 1500:GOTO 710
  580 HZ=L(I)-T(I)+HC(I)
  590 IF LC>HZ LET S=LC-HZ+T(I):XB=REC (S,Z(I))+X(I):YB=Z+Y(I):GOTO 710
  600 IF LC=INT (HZ*D+0.5)/D LET XB=XN:YB=YN:GOTO 710
  610 B=XN:C=YN:B0=O+90:O=O+180
  620 R=R(I):L0=L0(I)
  630 IF F(I)<0 LET W=1 ELSE W=-1
  650 IF L0=0 LET L=HZ-LC:GOSUB 1500:GOTO 710
  660 YH=HZ-L0:S=L0:GOSUB 1700:XYH=XN+TX:YYH=YN+TY
  670 IF LC=INT (YH*D+0.5)/D LET XB=XYH:YB=YYH:GOTO 710
  680 IF YH  690 L=YH-LC:O=O+90*L0*W/PI /R:B=XYH:C=YYH
  700 GOSUB 1500
  710 PRINT "X=";INT (XB*D+0.5)/D;"Y=";INT (YB*D+0.5)/D
  720 RETURN
  840 M=L0(I)/2-L0(I)^3/(240*R(I)^2):P=L0(I)^2/(24*R(I)):B0=90*L0(I)/(PI *R(I))
  850 T(I)=(R(I)+P)*TAN (F/2)+M
  860 HC(I)=PI *R(I)*(F-2*B0)/180+2*L0(I)
  870 E=(R(I)+P)/COS (F/2)-R(I)
  880 Q=2*T(I)-HC(I)
  890 RETURN
  900 A1=INT (A/1000):A1$=STR$ (A1):A2=A-A1*1000
  910 PRINT "K";A1$;"+";USING C$;INT (A2*1000+0.5)/1000
  920 RETURN
  1000 X=INT (X*1000+0.5)/1000
  1010 Y=INT (Y*10000+0.5)/10000
  1020 RETURN
  1300 G=XB-XA:H=YB-YA:S=POL (G,H):X=S
  1310 IF Z<0 LET Z=Z+360
  1320 Z=DMS Z:Y=Z
  1330 GOSUB 1000
  1340 PRINT "S(a-b)=";X;"a(a-b)=";Y 1700 DX=S-S^5/40/R/R/L0/L0
  1350 RETURN 1710 DY=S^3/6/R/L0-S^7/336/R^3/L0^3
  1500 K=L*90/PI /R1720 DY=DY*(-W)
  1510 J=2*R*SIN K1730 TX=DY*COS B0-DX*SIN B0
  1520 XB=REC (J,O+K*W)+B 1740 TY=DY*SIN B0+DX*COS B0
  1530 YB=Z+C:RETURN1750 RETURN
其他文献
摘 要:本文首先论述了建筑施工监理的重要意义,介绍了加强监理市场规范性工作要点,并重点介绍了施工前、施工中、竣工后的监理工作要点。  关键词:建筑工程;施工监理;重要意义;工作要点  Abstract:This paperdiscusses the importance of construction supervision,strengthen thesupervision of thekey
摘要:随着近年来混凝土高强、泵送技术的推广,混凝土裂缝问题更显突出。因此,总结墙体裂缝的预防和治理措施非常必要。本文首先介绍和分析了影响裂缝产生的原因,提出了对混凝土墙体裂缝的预防及治理的具体措施。  关键词:钢筋混凝土墙体;裂缝原因;治理措施  Abstract:In recent years with thehigh strength concrete, pumping technologyp
摘要:近年来,随着我国社会经济的快速发展,国内水利工程项目建设取得了巨大的成绩。水利工程建设既关系着工程项目效益的实现与否,又关系着人民的生命和财产安全。水工程建设过程中,最为常见的一个问题就是混凝土裂缝,而且已经成为我国水利工程建设施工中的一大桎梏。本文将对水利施工中的混凝土裂缝原因进行分析,并在此基础上提出一些有效的防范策略,以供参考。  关键词:水利工程;施工建设;混凝土裂缝;防治  Abs
摘 要:本文首先介绍了筑路机械施工过程中产生的问题,重点分析了筑路机械技术保养的重要作用,论述了筑路机械的故障及处理措施,并提出了如何做好筑路机械的设备管理,从而确保筑路机械安全、经济、高效的运行。  关键词:筑路机械;产生问题;技术保养;处理措施  Abstract:This paperfirstly introduces theproducing process ofroad construc
摘 要:配电线路是否可以做到可靠与优质以及经济与安全的运行,需要经常对线路的运行情况做出合理的分析,并提出预防事故与提高安全运行水平的技术措施。本文首先介绍了10kv配电线路的特点,重点分析了配电线路存在的主要问题,同时提出了配电设备的运行管理工作、配电线路的运行管理工作、配电线路的检修管理工作的具体措施。  关键词:配电线路;存在问题;设备管理;线路运行;检修管理   Abstract:Dist
本文对变电站的过电压进行了阐述,对母线系统谐振过电压以及空载变电器操作过电压进行了分析并提出了相应的对策,并分析了要注意的问题。
摘 要:项目管理贯穿于工程项目实施的全过程、全方位,它涉及的工程质量、进度与费用是项目管理的关键内容。本文主要分析了公路工程项目管理的内容,并就加强方法进行了论述。  关键词:公路工程;项目管理;内容;方法  Abstract:Throughthe implementation ofproject managementinthe whole process of project,the full
摘要:随着信息技术和通信技术的飞速发展,图书馆已进入了以信息资源共享为目标的数字图书馆时代。数字化时代的高校图书馆,把建设特色数据库作为迎接时代挑战的主要措施之一,本文对此进行了探讨。  关键词:图书馆;特色数据库  Abstract: With the rapid development of information technology and communication technology
摘要:本文主要围绕公路工程人工挖孔桩的施工问题进行了详细的阐述,介绍了其施工工艺和质量控制及安全技术措施。  关键词:人工挖孔桩;施工工艺;质量控制;安全技术  Abstract:This paper analyzedthe mainproblems in the construction ofthehighway engineeringof artificialhole digging pile
摘 要:本文笔者根据实际工程案例对陶岔渠首枢纽工程厂闸导墙温控防裂进行研究分析。  关键词:陶岔渠首枢纽工程;厂闸导墙;混泥土;保温;防控  Abstract: This paper according to the practical engineering case of Taocha headwork was factory gate guide wall temperature contr