一种地铁轨道SVG图的自动生成方法与流程

未命名 10-08 阅读:85 评论:0

一种地铁轨道svg图的自动生成方法
技术领域
1.本发明涉及轨道交通信号技术领域,具体为一种地铁轨道svg图的自动生成方法。


背景技术:

2.在城市轨道交通信号领域中,列车的位置信息、状态信息以及与轨旁设备的通信状态信息对行车安全至关重要。因此提高地铁轨道运维人员对轨道信号系统的监测能力也具有重要意义。
3.传统的列车状态监测中,很少有基于列车实时地理位置的监测,基本都是只有相对位置的轨道示意图,只能展示列车实时的相对位置。然而,随着城市轨道交通的高速发展,地铁线路交织成网,错综复杂,各线路信号设备之间、线路信号设备与其他信号设备之间的相互干扰问题也日益显现。在实际的轨道信号系统监测中,列车所在的地理位置,成了影响车地通信的一个重要因素,在地铁轨道交通数字化中扮演了重要角色。
4.现有的地铁信号系统状态监测一般包含ats(列车自动监控)监测、dcs(数据通信系统)监测、mds(微机监测系统)监测、轨旁设备监测、车载设备监测等,缺少基于地理位置的状态监测。缺点与不足在于:
5.1.随着城市地铁线网的形成和逐步扩大,地理位置成为系统监测的一个重要因子,缺少地理位置信息,不利于通信故障的分析和定位;
6.2.用户体验缺乏,运维人员无法直观的知晓列车的实时位置、速度、与轨旁rru等设备连接的信息,导致一些通信问题分析困难;
7.3.缺少直观的地理位置和里程信息,遇到信号问题时需要查询设计图纸,系统的便捷性降低;
8.现有的技术基本是手工方式绘制,依照cad(计算机辅助设计软件)进行逐个打点,然后连接各点成直线,最终绘制出svg(可缩放的矢量图形)图。缺点和不足在于:
9.1.一条线的地铁里程一般在几十公里,手工方式绘制耗时耗力,且容易出错。往往需要数周甚至上月的时间进行绘制和调整,效率较低;
10.2.需要有可靠的svg绘制工具、熟练的绘制技术,对人员要求较高;
11.3.不同线路无法复用,导致大量重复、单调工作。


技术实现要素:

12.本发明的目的在于克服现有的缺陷而提供的一种地铁轨道svg图的自动生成方法,在svg图中展示地理位置信息,辅助分析车地通信故障中地理位置因素的问题,同时基于svg图绘制站点、里程、rru(遥控射频单元)信息,为信号系统提供多维度的内容展示和状态监控。
13.实现上述目的的技术方案是:
14.一种地铁轨道svg图的自动生成方法,包括:
15.步骤s1,通过cad导出点,通过代码对点进行转换;
16.步骤s2,绘制独立轨道线;
17.步骤s3,绘制站点、rru和里程标签;
18.步骤s4,svg美化、页面大小调整;
19.步骤s5,导出svg;
20.步骤s6,通过导出的svg对列车实时位置和rru实时连线进行绘制。
21.优选的,所述步骤s1中,通过cad导出的点分为直线和圆弧两种,并对其进行垂直翻转,包括:
22.步骤s11,绘制直线,根据起点坐标和端点坐标,画出线段,点的差值x()和差值y()为:
23.;
24.其中,和分别为线段的起点和端点,和分别为线段的起点和端点;
25.步骤s12,绘制圆弧,针对圆心为的圆弧,圆弧总角度计算公式:
26.;
27.其中,为圆半径,为圆弧的长度;
28.步骤s13,对直线和圆弧进行垂直翻转,点坐标的翻转公式为:
29.;
30.其中,为点的坐标,为点的坐标,为转换后的坐标,转换后的y坐标,为点中y坐标的最大值,为点中y坐标的最小值,为点的y坐标偏移量。
31.优选的,所述步骤s2包括:
32.步骤s21,对获得的圆弧转换成点,获得圆弧坐标点数组;
33.步骤s22,连接点数组内各个点,绘制成线。
34.优选的,所述步骤s21包括:
35.步骤s211,获取圆心坐标、圆半径、起始角度;
36.步骤s212,计算起始坐标点,放入数组中,计算公式如下:
37.;
38.步骤s213,获取圆弧总角度,划分为段,每段角度为;
39.步骤s214,循环处理段的端点,放入点数组中,计算公式如下:
40.;
41.步骤s215,得到圆弧的坐标点数组;
42.所述步骤s22包括:
43.步骤s221,获取上述所述步骤s215得到的点数组;
44.步骤s222,设置一个最左侧的点,作为起始点;
45.步骤s223,以开始,从中寻找最近的点,然后连线,并将在中位置置为无效;
46.步骤s224,以开始,从中寻找最近的点,然后连线,并将在中位置置为无效;
47.步骤s225,依次类推,直至中点全部无效为止,绘制完成一条轨道线;
48.步骤s226,另一条轨道线重复上述步骤;
49.步骤s227,绘制完成,并通过inkscape工具,将起始点删除。
50.优选的,从点数组中查找离近的点,查找过程优化为,先算至中第一个点的距离,再算列表中剩余的-时,若某点的偏移和偏移中的最小值都大于,那么到的距离肯定不是最短,直接跳过。
51.优选的,所述步骤s3包括:
52.步骤s31,站点绘制,所有站的里程位置信息作为输入,根据各站的里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后绘制与该切线垂直的虚线段,在虚线段的其中一个端点绘制站名;
53.步骤s32,rru绘制,所有rru的里程位置信息作为输入,根据各rru的里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点,在这两个端点上绘制rru;
54.步骤s33,里程标签绘制,所有需要绘制里程标签的里程位置信息作为输入,根据各里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点,在这两个端点其中固定一侧的点上绘制里程标签。
55.优选的,所述步骤s4包括:
56.步骤s41,将生成的svg拷贝出来;
57.步骤s42,将svg打开,调整轨道线的粗细;
58.步骤s43,调整打开svg的页面大小。
59.优选的,所述步骤s5中,通过inkscape工具直接导出svg。
60.优选的,所述步骤s6中列车实时位置绘制,根据总客户里程、总svg线长、当前客户里程,计算列车实时位置,计算公式如下:
61.,
62.并获取列车的点坐标,根据点坐标及斜率绘制出列车。
63.本发明的有益效果是:本发明通过程序自动生成地铁轨道svg图,对svg图做垂直翻转,生成列车上下行轨道、生成站台、叠加里程、叠加rru图标,为列车基于地理位置的实时位置、状态展示提供了重要支撑;利用土建中cad图,自动生成可用于列车定位的svg图,不需要导出svg图后做大量的手工修改和调整,工作量可以减少到原先的十分之一;增加了地理位置信息的轨道图,在定位车地通信问题中,更利于分析地理因素影响因子;充分利用轨旁rru的实时情况、回放情况,提高车地通信问题的定位效率;本发明提升了地铁轨道svg图的生成效率,降低了svg图绘制的复杂度,提高了svg图里程数据绘制的准确性;进一步优化了列车基于地理位置状态展示的直观性和多元性。
附图说明
64.图1是本发明一种地铁轨道svg图的自动生成方法的流程图;
65.图2是本发明中通过cad导出点,通过代码对点进行转换的流程图;
66.图3是本发明中绘制独立轨道线的流程图;
67.图4是本发明中获得圆弧坐标点数组的流程图;
68.图5是本发明中连接点数组内各个点,绘制成线的流程图;
69.图6是本发明中绘制站点、rru和里程标签的流程图;
70.图7是本发明中svg美化、页面大小调整的流程图;
71.图8是本发明中线段有重叠和没有重叠的效果对比图;
72.图9是本发明中连线有重叠线段和无重叠线段的效果对比图;
73.图10是本发明中圆弧切割为多个点的示意图;
74.图11是本发明中车头方向跳变示意图;
75.图12是本发明中rru和站名位置示意图;
76.图13是本发明中定义四个象限的示意图;
77.图14是本发明中rru复杂设计图;
78.图15是本发明中定义车头的示意图;
79.图16是本发明中定义rru连接的a端、b端的示意图;
80.图17是本发明中上下行时列车的绘制起点的示意图。
具体实施方式
81.下面将结合附图对本发明的技术方案进行清楚、完整地描述。在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相正对地重要性。
82.下面将结合附图对本发明作进一步说明。
83.如图1-7所示,一种地铁轨道svg图的自动生成方法,包括:
84.步骤s1,通过cad导出点,通过代码对点进行转换。
85.地铁线路的土建图是用cad根据实际按比例绘制的,虽然cad可以通过某种方式导出svg图,但是该svg图是很多线段、圆弧拼接起来的,而非完整的一条线,这就导致在程序中无法直接使用;因此考虑通过程序方式绘制出独立的轨道svg,供程序使用,只需要cad导出点集合即可。
86.cad导出的点包含如表1所示的属性:表1
87.属性示例计数1名称圆弧/直线长度圆弧时:675.7949,直线时:1
端点x圆弧时:为空,直线时:21190.46端点y圆弧时:为空,直线时:48766.11端点z圆弧时:为空,直线时:0起点x圆弧时:为空,直线时:21090.25起点y圆弧时:为空,直线时:48897.37起点z圆弧时:为空,直线时:0中心x圆弧时:25471.79,直线时:为空中心y圆弧时:47573.85,直线时:为空中心z圆弧时:0,直线时:为空半径圆弧时:750,直线时:为空总角度圆弧时:50,直线时:为空起点角度圆弧时:69,直线时:为空差值x圆弧时:为空,直线时:端点x-起点x差值y圆弧时:为空,直线时:端点y-起点y差值z圆弧时:为空,直线时:0
88.直线数据如表2所示:表2
89.名称长度端点x端点y起点x起点y直线162.023821199.2248776.7221100.948905.5直线121199.8248775.9221199.2248776.72直线121200.4348775.1321199.8248775.92直线121201.0448774.3321200.4348775.13直线121201.6448773.5421201.0448774.33直线121202.2548772.7421201.6448773.54直线121202.8648771.9521202.2548772.74
90.圆弧数据如表3所示:表3
91.名称中心x中心y半径总角度起点角度计算角度圆弧25626.1647936.154003713.432345895圆弧26826.0248621.7370082507.844229205圆弧25473.3747573.87785388137.6426366圆弧24186.3246963.1510003882.630583212圆弧24365.1448752.61795.83026929.79592322圆弧26966.647277.0360010679.737598685圆弧28172.8843666.8333000640.36007222
92.cad导出的点分直线和圆弧两类,cad导点时,默认点的密度较小,几十米甚至上百米才一个点,导致所绘制的svg不够平滑,有明显锯齿,要使得svg平滑,需要增加点的密度,设置1米一个点,具体步骤如下。
93.步骤s11,绘制直线,根据起点坐标和端点坐标,画出线段,点的差值x()和差值
y()为:
94.;
95.其中,和分别为线段的起点和端点,和分别为线段的起点和端点。
96.步骤s12,绘制圆弧,针对圆心为的圆弧,圆弧总角度计算公式:
97.;
98.其中,为圆半径,为圆弧的长度。
99.为了简化圆弧的处理,可以用程序先画出各个独立的圆弧,然后对圆弧进行均分,最终得到多个点,后续只处理点即可,无需考虑圆弧,如图8所示。
100.步骤s13,对直线和圆弧进行垂直翻转,点坐标的翻转公式为:
101.;
102.其中,为点的坐标,为点的坐标,为转换后的坐标,转换后的y坐标,为点中y坐标的最大值,为点中y坐标的最小值,为点的y坐标偏移量。
103.cad导出的线段,会有重叠,即它看起来是一条线段,但实际是多条线段堆叠起来的,如图9所示。
104.所以,如果通过代码先画线段、再将线段连接起来会有问题,即绘制出的svg图在缩小时看着是两条轨道图,但放大查看细节时,是很多线段重叠在一起,无法直接使用,如图10所示。
105.步骤s2,绘制独立轨道线。
106.cad导出的点存在线段重叠的情况,所以先绘制线段,再连接线段的方式不可行;因此,这里采用最简便的最近点绘制方式。
107.圆心、半径、起始角度和总角度,由此可以确定具体的圆弧,并将圆弧角度均分为多个小角度,然后计算每个角度对应的点坐标。大致算法如下:
108.步骤s21,对获得的圆弧转换成点,获得圆弧坐标点数组。
109.步骤s211,获取圆心坐标、圆半径、起始角度。
110.步骤s212,计算起始坐标点,放入点数组中,计算公式如下:
111.;
112.步骤s213,获取圆弧总角度,划分为n段,每段角度为。
113.步骤s214,循环处理j∈[1,n]段的端点,放入点数组中,计算公式如下:
[0114]

[0115]
步骤s215,得到圆弧的坐标点数组。
[0116]
步骤s22,连接点数组内各个点,绘制成线。
[0117]
步骤s221,获取上述步骤s215得到的点数组。
[0118]
步骤s222,设置一个最左侧的点,作为起始点。
[0119]
步骤s223,以开始,从中寻找最近的点,然后连线,并将在中位置置为无效。
[0120]
步骤s224,以开始,从中寻找最近的点,然后连线,并将在中位置置为无效。
[0121]
步骤s225,依次类推,直至中点全部无效为止,绘制完成一条轨道线。
[0122]
步骤s226,另一条轨道线重复上述步骤。
[0123]
步骤s227,绘制完成,并通过inkscape工具,将起始点删除。
[0124]
从点数组中查找离近的点,查找过程优化为,先算至中第一个点的距离,再算列表中剩余的-时,若某点的偏移和偏移中的最小值都大于,那么到的距离肯定不是最短,直接跳过;这样,可以省略大量的平方和开方计算,提高生成效率。
[0125]
步骤s3,绘制站点、rru和里程标签。
[0126]
绘制站点、rru、里程时,需要根据当前点和斜率,计算相距一定距离len的前后两点。然后在这两点的位置上绘制站点、rru和里程;该两点的顺序计算必须准确,即在一根轨道线的任一点,起始s点和结束e点的顺序始终保持不变。
[0127]
方向对于车头车尾的判断、绘制站文字、绘制上下行rru等十分重要,只有方向准确了,绘制的位置才对;对于svg线,默认从左至右为正方向,因为x坐标从左至右递增,且getpointatlength(0)获取的起点也在左。
[0128]
若方向计算不准确,会产生如下问题:
[0129]
列车沿曲线行走时,车头车尾会闪变,即一开始车头在前,随着车辆的移动,车头会在后,如图11所示(t型头部为车头)。
[0130]
绘制的站名有时候在右侧,有时候在左侧。且上行rru和下行rru位置也会对应错误,如图12所示,rru01并不是一直在左,rru02并不是一直在右(站名同理)。
[0131]
因此,方向必须计算准确。若算列车的前后点只考虑了斜率,则方向就会出错。通过一个点、斜率和长度,算下一个点时,会有两个点符合条件,因为原点到第一、三象限点的斜率一样,到第二、四象限点的斜率也一样;如果只取任何一点,那么这个点可能是头,也可能是尾,这就导致车头、车尾闪变;同样也导致rru的两点顺序会更换;为了确保列车前后点以及垂线左右点的顺序正确,加入象限的考虑,以便分清两个点的顺序,如图13所示。
[0132]
a为当前点,把它作为起点;下一个点可能为b、c、d、e,a到b、d的斜率为正,到c、e的斜率为负;把a作为原点,然后算出下一点是在第几象限,这样也就可以区分出a-》b是正方向,a-》d是反方向;同样,可以区分出a-》c是正方向的左边,a-》e是正方向的右边;如上区分清楚之后,在列车上行时,就可以始终保证b为车头,而非d为车头,c为车左,而非e为车左。
[0133]
非垂直时,根据不同象限,由当前点(x,y)计算距离为l的下一点(x1, y1)的公式为(当前点和下一点的斜率都为k,它们的连线是该点在svg路径中的切线):
[0134]
第一象限:
[0135]

[0136]
第二象限:
[0137]

[0138]
第三象限:
[0139]

[0140]
第四象限:
[0141]

[0142]
既可绘制站点、rru和里程标签,具体如下:
[0143]
步骤s31,站点绘制。
[0144]
所有站的里程位置信息作为输入。
[0145]
根据各站的里程信息,定位轨道图中的相应的点。
[0146]
计算站点所在点的切线,然后绘制与该切线垂直的虚线段,两根线互为垂线,那么它们的斜率乘积=-1,斜率要考虑=0和=infinite的情况。
[0147]
在虚线段的其中一个端点绘制站名,文字默认从当前点往右绘制,如果要使文字在当前点居中,使用'text-anchor': 'middle'。
[0148]
步骤s32,rru绘制。
[0149]
rru分上、下行rru,然后每一方向的rru又分a网和b网,如表4所示。
[0150]
表4某一点rru上行下行a网401a01_rru02401a01_rru01b网401b01_rru02401b01_rru01
[0151]
在绘制rru时,轨道左、右边(上行方向)分别绘制两个重叠的rru(a网和b网),rru绘制具体步骤如下。
[0152]
所有rru的里程位置信息作为输入。
[0153]
根据各rru的里程信息,定位轨道图中的相应的点。
[0154]
计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点。
[0155]
在这两个端点上绘制rru。
[0156]
rru图标绘制:
[0157]
rru可以用点表示,实现简单。但有时候我们需要用更复杂的图表示,如图14所示。那么可以如下步骤:将rru复杂元素拷贝到inscape中,整个选中,建立组《g》;调整方向,使得左右对称。得到整个g的元素代码c1(包含transform变换参数);绘制rru时,将c1再用一层《g》包裹,然后进行适当的位移即可,不用做其他变换。
[0158]
步骤s33,里程标签绘制。
[0159]
里程标签通过text元素展示,在绘制里程标签时,同样需要计算位置点所在的切线,在切线的位置绘制里程标签,具体步骤如下。
[0160]
所有需要绘制里程标签的里程位置信息作为输入。
[0161]
根据各里程信息,定位轨道图中的相应的点。
[0162]
计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点。
[0163]
在这两个端点其中固定一侧的点上绘制里程标签。
[0164]
步骤s4,svg美化、页面大小调整。
[0165]
通过代码生成svg图后,可以通过inkscape工具适当的美化和调整。
[0166]
步骤s41,将生成的svg拷贝出来。
[0167]
代码生成的svg在浏览器显示,此时不要做任何缩放、平移操作,否则会多出transform,造成干扰,直接浏览器中f12,拷贝svg dom元素,粘贴到新建的txt中,改后缀为.svg,然后inkscape打开。
[0168]
步骤s42,将svg打开,调整轨道线的粗细。
[0169]
默认生成的轨道线粗为10,可以根据需要调整为其他值。
[0170]
步骤s43,调整打开svg的页面大小。
[0171]
认的页面大小设置的比较大,如果不调整一下,在使用的时候不太方便,会存在很多空白,且无法知道确切的viewbox。因此,这里要将页面大小调整为选区大小;注意,选区一定要是根元素的选区,且根元素必须为《g》,调整之后,保存即可。
[0172]
这里,我们需要收集两个最重要的参数:transform和viewbox,使用该svg的应用中需要用到,否则新增加的svg元素位置会发生偏移,无法和该svg图对应。
[0173]
步骤s5,导出svg。
[0174]
上述步骤完成后,通过inkscape工具直接导出即可,然后可用于具体的应用当中,可以在这个svg的基础上动态绘制列车、rru连线以及更复杂的应用。
[0175]
注意,加载该svg时,viewbox设置为上述收集的viewbox参数;然后在动态绘制新svg元素(列车、连线)时,需要加上上述收集的transform。
[0176]
步骤s6,通过导出的svg对列车实时位置和rru实时连线进行绘制。
[0177]
列车实时位置绘制
[0178]
首先,车头车尾定义;列车的位置信息来自于ats系统,车头位置定义如下:
[0179]
前进方向的开始为车头,末尾为车尾,所以,对于同一列车,车头车尾是依据上下行变的,如图15所示。
[0180]
lte(通用移动通信技术的长期演进)发送过来的数据,用a和b标识车头车尾,但是,这里需要注意,对于同一列车,a和b是固定不变的,无论该车的原型方向如何,如图16所示。
[0181]
因为通过ats系统获取的列车位置信息始终是车头的位置,因此在上、下行时绘制列车并不一样;算法中,我们会通过当前点,获取前一个点和后一个点;列车上行时,应取-的线段作为列车;列车下行时,应取-的线段作为列车;如下图17所示。
[0182]
根据总客户里程、总svg线长、当前客户里程,计算列车实时位置,计算公式如下:
[0183]

[0184]
然后通过path.node().getpointatlength(x)获取列车的点坐标,根据点坐标及斜率绘制出列车。
[0185]
当然也可以直接通过p1(path.node().getpointatlength(x))和p2(path.node().getpointatlength(x)

trainlength)这两点,直接绘制列车;这样也能保证车头、车尾都在线上,且不用计算斜率。
[0186]
rru实时连线绘制:
[0187]
车的a头、b头可能有如下三种情况:都有连线,都没有连线,只有其中一个有连线。
[0188]
a或者b同时只能与一个rru相连,rru可以同时与多列车相连。
[0189]
以车为准,每次lte的数据过来,更新车对象train的lte信息。
[0190]
车刷新时,也会刷新rru的连线情况。
[0191]
以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

技术特征:
1.一种地铁轨道svg图的自动生成方法,其特征在于,包括:步骤s1,通过cad导出点,通过代码对点进行转换;步骤s2,绘制独立轨道线;步骤s3,绘制站点、rru和里程标签;步骤s4,svg美化、页面大小调整;步骤s5,导出svg;步骤s6,通过导出的svg对列车实时位置和rru实时连线进行绘制。2.根据权利要求1所述的一种地铁轨道svg图的自动生成方法,其特征在于,所述步骤s1中,通过cad导出的点分为直线和圆弧两种,并对其进行垂直翻转,包括:步骤s11,绘制直线,根据起点坐标和端点坐标,画出线段,点的差值x()和差值y()为:;其中,和分别为线段的起点和端点,和分别为线段的起点和端点;步骤s12,绘制圆弧,针对圆心为的圆弧,圆弧总角度计算公式:;其中,为圆半径,为圆弧的长度;步骤s13,对直线和圆弧进行垂直翻转,点坐标的翻转公式为:;其中,为点的坐标,为点的坐标,为转换后的坐标,转换后的y坐标,为点中y坐标的最大值,为点中y坐标的最小值,为点的y坐标偏移量。3.根据权利要求2所述的一种地铁轨道svg图的自动生成方法,其特征在于,所述步骤s2包括:步骤s21,对获得的圆弧转换成点,获得圆弧坐标点数组;步骤s22,连接点数组内各个点,绘制成线。4.根据权利要求3所述的一种地铁轨道svg图的自动生成方法,其特征在于,所述步骤s21包括:步骤s211,获取圆心坐标、圆半径、起始角度;步骤s212,计算起始坐标点,放入点数组中,计算公式如下:;步骤s213,获取圆弧总角度,划分为段,每段角度为;步骤s214,循环处理段的端点,放入点数组中,计算公式如下:;
步骤s215,得到圆弧的坐标点数组;所述步骤s22包括:步骤s221,获取上述所述步骤s215得到的点数组;步骤s222,设置一个最左侧的点,作为起始点;步骤s223,以开始,从中寻找最近的点,然后连线,并将在中位置置为无效;步骤s224,以开始,从中寻找最近的点,然后连线,并将在中位置置为无效;步骤s225,依次类推,直至中点全部无效为止,绘制完成一条轨道线;步骤s226,另一条轨道线重复上述步骤;步骤s227,绘制完成,并通过inkscape工具,将起始点删除。5.根据权利要求4所述的一种地铁轨道svg图的自动生成方法,其特征在于,从点数组中查找离近的点,查找过程优化为,先算至中第一个点的距离,再算列表中剩余的-时,若某点的偏移和偏移中的最小值都大于,那么到的距离肯定不是最短,直接跳过。6.根据权利要求1所述的一种地铁轨道svg图的自动生成方法,其特征在于,所述步骤s3包括:步骤s31,站点绘制,所有站的里程位置信息作为输入,根据各站的里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后绘制与该切线垂直的虚线段,在虚线段的其中一个端点绘制站名;步骤s32,rru绘制,所有rru的里程位置信息作为输入,根据各rru的里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点,在这两个端点上绘制rru;步骤s33,里程标签绘制,所有需要绘制里程标签的里程位置信息作为输入,根据各里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点,在这两个端点其中固定一侧的点上绘制里程标签。7.根据权利要求1所述的一种地铁轨道svg图的自动生成方法,其特征在于,所述步骤s4包括:步骤s41,将生成的svg拷贝出来;步骤s42,将svg打开,调整轨道线的粗细;步骤s43,调整打开svg的页面大小。8.根据权利要求1所述的一种地铁轨道svg图的自动生成方法,其特征在于,所述步骤s5中,通过inkscape工具直接导出svg。9.根据权利要求1所述的一种地铁轨道svg图的自动生成方法,其特征在于,所述步骤s6中列车实时位置绘制,根据总客户里程、总svg线长、当前客户里程,计算列车实时位置,计算公式如下:,并获取列车的点坐标,根据点坐标及斜率绘制出列车。

技术总结
本发明涉及轨道交通信号技术领域,且公开了一种地铁轨道SVG图的自动生成方法,包括:步骤S1,通过CAD导出点,通过代码对点进行转换;步骤S2,绘制独立轨道线;步骤S3,绘制站点、RRU和里程标签;步骤S4,SVG美化、页面大小调整;步骤S5,导出SVG;步骤S6,通过导出的SVG对列车实时位置和RRU实时连线进行绘制。本发明在SVG图中展示地理位置信息,辅助分析车地通信故障中地理位置因素的问题,同时基于SVG图绘制站点、里程、RRU信息,为信号系统提供多维度的内容展示和状态监控。示和状态监控。示和状态监控。


技术研发人员:徐志华 张力文 曾鹤祥
受保护的技术使用者:上海电气泰雷兹交通自动化系统有限公司
技术研发日:2023.08.24
技术公布日:2023/10/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐