CN116824006B - 一种地铁轨道svg图的自动生成方法 - Google Patents
一种地铁轨道svg图的自动生成方法 Download PDFInfo
- Publication number
- CN116824006B CN116824006B CN202311068259.5A CN202311068259A CN116824006B CN 116824006 B CN116824006 B CN 116824006B CN 202311068259 A CN202311068259 A CN 202311068259A CN 116824006 B CN116824006 B CN 116824006B
- Authority
- CN
- China
- Prior art keywords
- point
- svg
- points
- line
- mileage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000010586 diagram Methods 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 abstract description 16
- 238000004891 communication Methods 0.000 abstract description 9
- 238000011960 computer-aided design Methods 0.000 description 14
- 230000009466 transformation Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003137 locomotive effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Train Traffic Observation, Control, And Security (AREA)
Abstract
本发明涉及轨道交通信号技术领域,且公开了一种地铁轨道SVG图的自动生成方法,包括:步骤S1,通过CAD导出点,通过代码对点进行转换;步骤S2,绘制独立轨道线;步骤S3,绘制站点、RRU和里程标签;步骤S4,SVG美化、页面大小调整;步骤S5,导出SVG;步骤S6,通过导出的SVG对列车实时位置和RRU实时连线进行绘制。本发明在SVG图中展示地理位置信息,辅助分析车地通信故障中地理位置因素的问题,同时基于SVG图绘制站点、里程、RRU信息,为信号***提供多维度的内容展示和状态监控。
Description
技术领域
本发明涉及轨道交通信号技术领域,具体为一种地铁轨道SVG图的自动生成方法。
背景技术
在城市轨道交通信号领域中,列车的位置信息、状态信息以及与轨旁设备的通信状态信息对行车安全至关重要。因此提高地铁轨道运维人员对轨道信号***的监测能力也具有重要意义。
传统的列车状态监测中,很少有基于列车实时地理位置的监测,基本都是只有相对位置的轨道示意图,只能展示列车实时的相对位置。然而,随着城市轨道交通的高速发展,地铁线路交织成网,错综复杂,各线路信号设备之间、线路信号设备与其他信号设备之间的相互干扰问题也日益显现。在实际的轨道信号***监测中,列车所在的地理位置,成了影响车地通信的一个重要因素,在地铁轨道交通数字化中扮演了重要角色。
现有的地铁信号***状态监测一般包含ATS(列车自动监控)监测、DCS(数据通信***)监测、MDS(微机监测***)监测、轨旁设备监测、车载设备监测等,缺少基于地理位置的状态监测。缺点与不足在于:
1.随着城市地铁线网的形成和逐步扩大,地理位置成为***监测的一个重要因子,缺少地理位置信息,不利于通信故障的分析和定位;
2.用户体验缺乏,运维人员无法直观的知晓列车的实时位置、速度、与轨旁RRU等设备连接的信息,导致一些通信问题分析困难;
3.缺少直观的地理位置和里程信息,遇到信号问题时需要查询设计图纸,***的便捷性降低;
现有的技术基本是手工方式绘制,依照CAD(计算机辅助设计软件)进行逐个打点,然后连接各点成直线,最终绘制出SVG(可缩放的矢量图形)图。缺点和不足在于:
1.一条线的地铁里程一般在几十公里,手工方式绘制耗时耗力,且容易出错。往往需要数周甚至上月的时间进行绘制和调整,效率较低;
2.需要有可靠的SVG绘制工具、熟练的绘制技术,对人员要求较高;
3.不同线路无法复用,导致大量重复、单调工作。
发明内容
本发明的目的在于克服现有的缺陷而提供的一种地铁轨道SVG图的自动生成方法,在SVG图中展示地理位置信息,辅助分析车地通信故障中地理位置因素的问题,同时基于SVG图绘制站点、里程、RRU(遥控射频单元)信息,为信号***提供多维度的内容展示和状态监控。
实现上述目的的技术方案是:
一种地铁轨道SVG图的自动生成方法,包括:
步骤S1,通过CAD导出点,通过代码对点进行转换;
步骤S2,绘制独立轨道线;
步骤S3,绘制站点、RRU和里程标签;
步骤S4,SVG美化、页面大小调整;
步骤S5,导出SVG;
步骤S6,通过导出的SVG对列车实时位置和RRU实时连线进行绘制。
优选的,所述步骤S1中,通过CAD导出的点分为直线和圆弧两种,并对其进行垂直翻转,包括:
步骤S11,绘制直线,根据起点坐标和端点坐标,画出线段,点的差值x()和差值
y()为:
;
其中,和分别为线段的起点和端点,和分别为线段的起点和端点;
步骤S12,绘制圆弧,针对圆心为的圆弧,圆弧总角度计算公式:
;
其中,为圆半径,为圆弧的长度;
步骤S13,对直线和圆弧进行垂直翻转,点坐标的翻转公式为:
;
其中,为点的坐标,为点的坐标,为转换后的坐标,转换后的Y坐
标,为点中Y坐标的最大值,为点中Y坐标的最小值,为点的Y坐标偏移量。
优选的,所述步骤S2包括:
步骤S21,对获得的圆弧转换成点,获得圆弧坐标点数组;
步骤S22,连接点数组内各个点,绘制成线。
优选的,所述步骤S21包括:
步骤S211,获取圆心坐标、圆半径、起始角度;
步骤S212,计算起始坐标点,放入数组中,计算公式如下:
;
步骤S213,获取圆弧总角度,划分为段,每段角度为;
步骤S214,循环处理段的端点,放入点数组中,计算公式如下:
;
步骤S215,得到圆弧的坐标点数组;
所述步骤S22包括:
步骤S221,获取上述所述步骤S215得到的点数组;
步骤S222,设置一个最左侧的点,作为起始点;
步骤S223,以开始,从中寻找最近的点,然后连线,并将在中位置置为无
效;
步骤S224,以开始,从中寻找最近的点,然后连线,并将在中位置置为无
效;
步骤S225,依次类推,直至中点全部无效为止,绘制完成一条轨道线;
步骤S226,另一条轨道线重复上述步骤;
步骤S227,绘制完成,并通过Inkscape工具,将起始点删除。
优选的,从点数组中查找离近的点,查找过程优化为,先算至中第一个点的距离,再算列表中剩余的-时,若某点的偏移和偏移中的最小值都大于
,那么到的距离肯定不是最短,直接跳过。
优选的,所述步骤S3包括:
步骤S31,站点绘制,所有站的里程位置信息作为输入,根据各站的里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后绘制与该切线垂直的虚线段,在虚线段的其中一个端点绘制站名;
步骤S32,RRU绘制,所有RRU的里程位置信息作为输入,根据各RRU的里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点,在这两个端点上绘制RRU;
步骤S33,里程标签绘制,所有需要绘制里程标签的里程位置信息作为输入,根据各里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点,在这两个端点其中固定一侧的点上绘制里程标签。
优选的,所述步骤S4包括:
步骤S41,将生成的SVG拷贝出来;
步骤S42,将SVG打开,调整轨道线的粗细;
步骤S43,调整打开SVG的页面大小。
优选的,所述步骤S5中,通过Inkscape工具直接导出SVG。
优选的,所述步骤S6中列车实时位置绘制,根据总客户里程、总SVG线长、当前
客户里程,计算列车实时位置,计算公式如下:
,
并获取列车的点坐标,根据点坐标及斜率绘制出列车。
本发明的有益效果是:本发明通过程序自动生成地铁轨道SVG图,对SVG图做垂直翻转,生成列车上下行轨道、生成站台、叠加里程、叠加RRU图标,为列车基于地理位置的实时位置、状态展示提供了重要支撑;利用土建中CAD图,自动生成可用于列车定位的SVG图,不需要导出SVG图后做大量的手工修改和调整,工作量可以减少到原先的十分之一;增加了地理位置信息的轨道图,在定位车地通信问题中,更利于分析地理因素影响因子;充分利用轨旁RRU的实时情况、回放情况,提高车地通信问题的定位效率;本发明提升了地铁轨道SVG图的生成效率,降低了SVG图绘制的复杂度,提高了SVG图里程数据绘制的准确性;进一步优化了列车基于地理位置状态展示的直观性和多元性。
附图说明
图1是本发明一种地铁轨道SVG图的自动生成方法的流程图;
图2是本发明中通过CAD导出点,通过代码对点进行转换的流程图;
图3是本发明中绘制独立轨道线的流程图;
图4是本发明中获得圆弧坐标点数组的流程图;
图5是本发明中连接点数组内各个点,绘制成线的流程图;
图6是本发明中绘制站点、RRU和里程标签的流程图;
图7是本发明中SVG美化、页面大小调整的流程图;
图8是本发明中线段有重叠和没有重叠的效果对比图;
图9是本发明中连线有重叠线段和无重叠线段的效果对比图;
图10是本发明中圆弧切割为多个点的示意图;
图11是本发明中车头方向跳变示意图;
图12是本发明中RRU和站名位置示意图;
图13是本发明中定义四个象限的示意图;
图14是本发明中RRU复杂设计图;
图15是本发明中定义车头的示意图;
图16是本发明中定义RRU连接的A端、B端的示意图;
图17是本发明中上下行时列车的绘制起点的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述。在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相正对地重要性。
下面将结合附图对本发明作进一步说明。
如图1-7所示,一种地铁轨道SVG图的自动生成方法,包括:
步骤S1,通过CAD导出点,通过代码对点进行转换。
地铁线路的土建图是用CAD根据实际按比例绘制的,虽然CAD可以通过某种方式导出SVG图,但是该SVG图是很多线段、圆弧拼接起来的,而非完整的一条线,这就导致在程序中无法直接使用;因此考虑通过程序方式绘制出独立的轨道SVG,供程序使用,只需要CAD导出点集合即可。
CAD导出的点包含如表1所示的属性:
表1
属性 | 示例 |
计数 | 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 |
直线数据如表2所示:
表2
名称 | 长度 | 端点 X | 端点 Y | 起点 X | 起点 Y |
直线 | 162.0238 | 21199.22 | 48776.72 | 21100.9 | 48905.5 |
直线 | 1 | 21199.82 | 48775.92 | 21199.22 | 48776.72 |
直线 | 1 | 21200.43 | 48775.13 | 21199.82 | 48775.92 |
直线 | 1 | 21201.04 | 48774.33 | 21200.43 | 48775.13 |
直线 | 1 | 21201.64 | 48773.54 | 21201.04 | 48774.33 |
直线 | 1 | 21202.25 | 48772.74 | 21201.64 | 48773.54 |
直线 | 1 | 21202.86 | 48771.95 | 21202.25 | 48772.74 |
圆弧数据如表3所示:
表3
名称 | 中心 X | 中心 Y | 半径 | 总角度 | 起点角度 | 计算角度 |
圆弧 | 25626.16 | 47936.15 | 400 | 3 | 71 | 3.432345895 |
圆弧 | 26826.02 | 48621.73 | 700 | 8 | 250 | 7.844229205 |
圆弧 | 25473.37 | 47573.87 | 785 | 38 | 81 | 37.6426366 |
圆弧 | 24186.32 | 46963.15 | 1000 | 3 | 88 | 2.630583212 |
圆弧 | 24365.14 | 48752.61 | 795.8 | 30 | 269 | 29.79592322 |
圆弧 | 26966.6 | 47277.03 | 600 | 10 | 67 | 9.737598685 |
圆弧 | 28172.88 | 43666.83 | 3300 | 0 | 64 | 0.36007222 |
CAD导出的点分直线和圆弧两类,CAD导点时,默认点的密度较小,几十米甚至上百米才一个点,导致所绘制的SVG不够平滑,有明显锯齿,要使得SVG平滑,需要增加点的密度,设置1米一个点,具体步骤如下。
步骤S11,绘制直线,根据起点坐标和端点坐标,画出线段,点的差值x()和差值
y()为:
;
其中,和分别为线段的起点和端点,和分别为线段的起点和端点。
步骤S12,绘制圆弧,针对圆心为的圆弧,圆弧总角度计算公式:
;
其中,为圆半径,为圆弧的长度。
为了简化圆弧的处理,可以用程序先画出各个独立的圆弧,然后对圆弧进行均分,最终得到多个点,后续只处理点即可,无需考虑圆弧,如图8所示。
步骤S13,对直线和圆弧进行垂直翻转,点坐标的翻转公式为:
;
其中,为点的坐标,为点的坐标,为转换后的坐标,转换后的Y坐
标,为点中Y坐标的最大值,为点中Y坐标的最小值,为点的Y坐标偏移量。
CAD导出的线段,会有重叠,即它看起来是一条线段,但实际是多条线段堆叠起来的,如图9所示。
所以,如果通过代码先画线段、再将线段连接起来会有问题,即绘制出的SVG图在缩小时看着是两条轨道图,但放大查看细节时,是很多线段重叠在一起,无法直接使用,如图10所示。
步骤S2,绘制独立轨道线。
CAD导出的点存在线段重叠的情况,所以先绘制线段,再连接线段的方式不可行;因此,这里采用最简便的最近点绘制方式。
圆心、半径、起始角度和总角度,由此可以确定具体的圆弧,并将圆弧角度均分为多个小角度,然后计算每个角度对应的点坐标。大致算法如下:
步骤S21,对获得的圆弧转换成点,获得圆弧坐标点数组。
步骤S211,获取圆心坐标、圆半径、起始角度。
步骤S212,计算起始坐标点,放入点数组中,计算公式如下:
;
步骤S213,获取圆弧总角度,划分为n段,每段角度为。
步骤S214,循环处理j∈[1,n]段的端点,放入点数组中,计算公式如下:
;
步骤S215,得到圆弧的坐标点数组。
步骤S22,连接点数组内各个点,绘制成线。
步骤S221,获取上述步骤S215得到的点数组。
步骤S222,设置一个最左侧的点,作为起始点。
步骤S223,以开始,从中寻找最近的点,然后连线,并将在中位置置为无
效。
步骤S224,以开始,从中寻找最近的点,然后连线,并将在中位置置为无
效。
步骤S225,依次类推,直至中点全部无效为止,绘制完成一条轨道线。
步骤S226,另一条轨道线重复上述步骤。
步骤S227,绘制完成,并通过Inkscape工具,将起始点删除。
从点数组中查找离近的点,查找过程优化为,先算至中第一个点的距
离,再算列表中剩余的-时,若某点的偏移和偏移中的最小值都大于,那么
到的距离肯定不是最短,直接跳过;这样,可以省略大量的平方和开方计算,提高生成效
率。
步骤S3,绘制站点、RRU和里程标签。
绘制站点、RRU、里程时,需要根据当前点和斜率,计算相距一定距离Len的前后两点。然后在这两点的位置上绘制站点、RRU和里程;该两点的顺序计算必须准确,即在一根轨道线的任一点,起始S点和结束E点的顺序始终保持不变。
方向对于车头车尾的判断、绘制站文字、绘制上下行RRU等十分重要,只有方向准确了,绘制的位置才对;对于SVG线,默认从左至右为正方向,因为x坐标从左至右递增,且getPointAtLength(0)获取的起点也在左。
若方向计算不准确,会产生如下问题:
列车沿曲线行走时,车头车尾会闪变,即一开始车头在前,随着车辆的移动,车头会在后,如图11所示(T型头部为车头)。
绘制的站名有时候在右侧,有时候在左侧。且上行RRU和下行RRU位置也会对应错误,如图12所示,RRU01并不是一直在左,RRU02并不是一直在右(站名同理)。
因此,方向必须计算准确。若算列车的前后点只考虑了斜率,则方向就会出错。通过一个点、斜率和长度,算下一个点时,会有两个点符合条件,因为原点到第一、三象限点的斜率一样,到第二、四象限点的斜率也一样;如果只取任何一点,那么这个点可能是头,也可能是尾,这就导致车头、车尾闪变;同样也导致RRU的两点顺序会更换;为了确保列车前后点以及垂线左右点的顺序正确,加入象限的考虑,以便分清两个点的顺序,如图13所示。
A为当前点,把它作为起点;下一个点可能为B、C、D、E,A到B、D的斜率为正,到C、E的斜率为负;把A作为原点,然后算出下一点是在第几象限,这样也就可以区分出A->B是正方向,A->D是反方向;同样,可以区分出A->C是正方向的左边,A->E是正方向的右边;如上区分清楚之后,在列车上行时,就可以始终保证B为车头,而非D为车头,C为车左,而非E为车左。
非垂直时,根据不同象限,由当前点(x,y)计算距离为L的下一点(x1, y1)的公式为(当前点和下一点的斜率都为k,它们的连线是该点在SVG路径中的切线):
第一象限:
;
第二象限:
;
第三象限:
;
第四象限:
。
既可绘制站点、RRU和里程标签,具体如下:
步骤S31,站点绘制。
所有站的里程位置信息作为输入。
根据各站的里程信息,定位轨道图中的相应的点。
计算站点所在点的切线,然后绘制与该切线垂直的虚线段,两根线互为垂线,那么它们的斜率乘积=-1,斜率要考虑=0和=Infinite的情况。
在虚线段的其中一个端点绘制站名,文字默认从当前点往右绘制,如果要使文字在当前点居中,使用'text-anchor': 'middle'。
步骤S32,RRU绘制。
RRU分上、下行RRU,然后每一方向的RRU又分A网和B网,如表4所示。
表4
某一点RRU | 上行 | 下行 |
A网 | 401A01_RRU02 | 401A01_RRU01 |
B网 | 401B01_RRU02 | 401B01_RRU01 |
在绘制RRU时,轨道左、右边(上行方向)分别绘制两个重叠的RRU(A网和B网),RRU绘制具体步骤如下。
所有RRU的里程位置信息作为输入。
根据各RRU的里程信息,定位轨道图中的相应的点。
计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点。
在这两个端点上绘制RRU。
RRU图标绘制:
RRU可以用点表示,实现简单。但有时候我们需要用更复杂的图表示,如图14所示。那么可以如下步骤:将RRU复杂元素拷贝到Inscape中,整个选中,建立组<g>;调整方向,使得左右对称。得到整个g的元素代码c1(包含transform变换参数);绘制RRU时,将c1再用一层<g>包裹,然后进行适当的位移即可,不用做其他变换。
步骤S33,里程标签绘制。
里程标签通过text元素展示,在绘制里程标签时,同样需要计算位置点所在的切线,在切线的位置绘制里程标签,具体步骤如下。
所有需要绘制里程标签的里程位置信息作为输入。
根据各里程信息,定位轨道图中的相应的点。
计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点。
在这两个端点其中固定一侧的点上绘制里程标签。
步骤S4,SVG美化、页面大小调整。
通过代码生成SVG图后,可以通过Inkscape工具适当的美化和调整。
步骤S41,将生成的SVG拷贝出来。
代码生成的SVG在浏览器显示,此时不要做任何缩放、平移操作,否则会多出transform,造成干扰,直接浏览器中F12,拷贝SVG DOM元素,粘贴到新建的txt中,改后缀为.svg,然后Inkscape打开。
步骤S42,将SVG打开,调整轨道线的粗细。
默认生成的轨道线粗为10,可以根据需要调整为其他值。
步骤S43,调整打开SVG的页面大小。
认的页面大小设置的比较大,如果不调整一下,在使用的时候不太方便,会存在很多空白,且无法知道确切的viewBox。因此,这里要将页面大小调整为选区大小;注意,选区一定要是根元素的选区,且根元素必须为<g>,调整之后,保存即可。
这里,我们需要收集两个最重要的参数:transform和viewbox,使用该SVG的应用中需要用到,否则新增加的SVG元素位置会发生偏移,无法和该SVG图对应。
步骤S5,导出SVG。
上述步骤完成后,通过Inkscape工具直接导出即可,然后可用于具体的应用当中,可以在这个SVG的基础上动态绘制列车、RRU连线以及更复杂的应用。
注意,加载该SVG时,viewBox设置为上述收集的viewBox参数;然后在动态绘制新SVG元素(列车、连线)时,需要加上上述收集的transform。
步骤S6,通过导出的SVG对列车实时位置和RRU实时连线进行绘制。
列车实时位置绘制
首先,车头车尾定义;列车的位置信息来自于ATS***,车头位置定义如下:
前进方向的开始为车头,末尾为车尾,所以,对于同一列车,车头车尾是依据上下行变的,如图15所示。
LTE(通用移动通信技术的长期演进)发送过来的数据,用A和B标识车头车尾,但是,这里需要注意,对于同一列车,A和B是固定不变的,无论该车的原型方向如何,如图16所示。
因为通过ATS***获取的列车位置信息始终是车头的位置,因此在上、下行时绘制
列车并不一样;算法中,我们会通过当前点,获取前一个点和后一个点;列车上行时,
应取-的线段作为列车;列车下行时,应取-的线段作为列车;如下图17所示。
根据总客户里程、总SVG线长、当前客户里程,计算列车实时位置,计算公式
如下:
,
然后通过path.node().getPointAtLength(x)获取列车的点坐标,根据点坐
标及斜率绘制出列车。
当然也可以直接通过p1(path.node().getPointAtLength(x))和p2(path.node().getPointAtLength(x)–trainLength)这两点,直接绘制列车;这样也能保证车头、车尾都在线上,且不用计算斜率。
RRU实时连线绘制:
车的A头、B头可能有如下三种情况:都有连线,都没有连线,只有其中一个有连线。
A或者B同时只能与一个RRU相连,RRU可以同时与多列车相连。
以车为准,每次LTE的数据过来,更新车对象Train的LTE信息。
车刷新时,也会刷新RRU的连线情况。
以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (5)
1.一种地铁轨道SVG图的自动生成方法,其特征在于,包括:
步骤S1,通过CAD导出点,通过代码对点进行转换;
步骤S2,绘制独立轨道线;
步骤S3,绘制站点、RRU和里程标签;
步骤S4,SVG美化、页面大小调整;
步骤S5,导出SVG;
步骤S6,通过导出的SVG对列车实时位置和RRU实时连线进行绘制;
所述步骤S1中,通过CAD导出的点分为直线和圆弧两种,并对其进行垂直翻转,包括:
步骤S11,绘制直线,根据起点坐标和端点坐标,画出线段,点的差值x(Dx)和差值y(Dy)为:
;
其中,sX和eX分别为线段X的起点和端点,sY和eY分别为线段Y的起点和端点;
步骤S12,绘制圆弧,针对圆心为(X,Y)的圆弧,圆弧总角度计算公式:
;
其中,r为圆半径,L为圆弧的长度;
步骤S13,对直线和圆弧进行垂直翻转,点坐标的翻转公式为:
;
其中,Px为点的X坐标,Py为点的Y坐标,Px'为转换后的X坐标,Py'转换后的Y坐标,maxY为点中Y坐标的最大值,minY为点中Y坐标的最小值,m为点的Y坐标偏移量;
所述步骤S2包括:
步骤S21,对获得的圆弧转换成点,获得圆弧坐标点数组Lp;
步骤S22,连接点数组Lp内各个点,绘制成线;
所述步骤S21包括:
步骤S211,获取圆心坐标p 0 (r x , r y )、圆半径r、起始角度sDegree;
步骤S212,计算起始坐标点p 1 (x 1 , y 1 ),放入点数组Lp中,计算公式如下:
;
步骤S213,获取圆弧总角度tDegree,划分为n段,每段角度为pad;
步骤S214,循环处理j∈[1,n]段的端点(x2, y2),放入点数组Lp中,计算公式如下:
;
步骤S215,得到圆弧的坐标点数组Lp;
所述步骤S22包括:
步骤S221,获取上述所述步骤S215得到的点数组Lp;
步骤S222,设置一个最左侧的点,作为起始点p0;
步骤S223,以p0开始,从Lp中寻找最近的点p1,然后连线,并将p1在Lp中位置置为无效;
步骤S224,以p1开始,从Lp中寻找最近的点p2,然后连线,并将p2在Lp中位置置为无效;
步骤S225,依次类推,直至Lp中点全部无效为止,绘制完成一条轨道线;
步骤S226,另一条轨道线重复上述步骤;
步骤S227,绘制完成,并通过Inkscape工具,将起始点p0删除;
从点数组Lp中查找离Px近的点Py,查找过程优化为,先算Px至Lp中第一个点Lp1的距离L1,再算列表中剩余的Lp2-Lpn时,若某点Lp'的x偏移和y偏移中的最小值都大于L1,那么Px到Lp'的距离肯定不是最短,直接跳过。
2.根据权利要求1所述的一种地铁轨道SVG图的自动生成方法,其特征在于,所述步骤S3包括:
步骤S31,站点绘制,所有站的里程位置信息作为输入,根据各站的里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后绘制与该切线垂直的虚线段,在虚线段的其中一个端点绘制站名;
步骤S32,RRU绘制,所有RRU的里程位置信息作为输入,根据各RRU的里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点,在这两个端点上绘制RRU;
步骤S33,里程标签绘制,所有需要绘制里程标签的里程位置信息作为输入,根据各里程信息,定位轨道图中的相应的点,计算站点所在点的切线,然后再计算与该切线垂直的线段的两个端点,在这两个端点其中固定一侧的点上绘制里程标签。
3.根据权利要求1所述的一种地铁轨道SVG图的自动生成方法,其特征在于,所述步骤S4包括:
步骤S41,将生成的SVG拷贝出来;
步骤S42,将SVG打开,调整轨道线的粗细;
步骤S43,调整打开SVG的页面大小。
4.根据权利要求1所述的一种地铁轨道SVG图的自动生成方法,其特征在于,所述步骤S5中,通过Inkscape工具直接导出SVG。
5.根据权利要求1所述的一种地铁轨道SVG图的自动生成方法,其特征在于,所述步骤S6中列车实时位置绘制,根据总客户里程d 1 、总SVG线长L t 、当前客户里程d 2 ,计算列车实时位置x,计算公式如下:
,
并获取列车的点坐标p(x, y),根据点坐标及斜率绘制出列车。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311068259.5A CN116824006B (zh) | 2023-08-24 | 2023-08-24 | 一种地铁轨道svg图的自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311068259.5A CN116824006B (zh) | 2023-08-24 | 2023-08-24 | 一种地铁轨道svg图的自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116824006A CN116824006A (zh) | 2023-09-29 |
CN116824006B true CN116824006B (zh) | 2023-12-01 |
Family
ID=88122359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311068259.5A Active CN116824006B (zh) | 2023-08-24 | 2023-08-24 | 一种地铁轨道svg图的自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116824006B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309988A (zh) * | 2013-06-18 | 2013-09-18 | 尹盛 | 一种自动生成轨道交通线路数据库的方法 |
JP6429953B1 (ja) * | 2017-06-23 | 2018-11-28 | 鈴木 晃一 | Webブラウザによるダイヤ作成統合システム |
CN110009713A (zh) * | 2019-03-27 | 2019-07-12 | 中北大学 | 一种利用AutoCAD快速1:1绘制桥式起重机主梁二维工程图的方法 |
CN113970337A (zh) * | 2015-06-06 | 2022-01-25 | 苹果公司 | 具有公交模式的地图绘制应用程序 |
CN114581546A (zh) * | 2021-12-31 | 2022-06-03 | 广州能迪云服务科技有限公司 | 一种基于svg技术的楼宇图形显示方法 |
CN114662028A (zh) * | 2022-02-23 | 2022-06-24 | 北京南凯自动化***工程有限公司 | 一种基于svg的轨道交通供电设备的可视化工单构建方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10049462B2 (en) * | 2016-03-23 | 2018-08-14 | Akcelita, LLC | System and method for tracking and annotating multiple objects in a 3D model |
-
2023
- 2023-08-24 CN CN202311068259.5A patent/CN116824006B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309988A (zh) * | 2013-06-18 | 2013-09-18 | 尹盛 | 一种自动生成轨道交通线路数据库的方法 |
CN113970337A (zh) * | 2015-06-06 | 2022-01-25 | 苹果公司 | 具有公交模式的地图绘制应用程序 |
JP6429953B1 (ja) * | 2017-06-23 | 2018-11-28 | 鈴木 晃一 | Webブラウザによるダイヤ作成統合システム |
CN110009713A (zh) * | 2019-03-27 | 2019-07-12 | 中北大学 | 一种利用AutoCAD快速1:1绘制桥式起重机主梁二维工程图的方法 |
CN114581546A (zh) * | 2021-12-31 | 2022-06-03 | 广州能迪云服务科技有限公司 | 一种基于svg技术的楼宇图形显示方法 |
CN114662028A (zh) * | 2022-02-23 | 2022-06-24 | 北京南凯自动化***工程有限公司 | 一种基于svg的轨道交通供电设备的可视化工单构建方法 |
Non-Patent Citations (2)
Title |
---|
一种联锁图表自动生成软件研究与设计;孙晓光 等;《铁路通信信号工程技术》;第18卷(第6期);第1-6页 * |
基于FreeCAD铁路站前工程BIM软件设计与开发;王焕松;《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》(第4期);第C033-38页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116824006A (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102903260B (zh) | 一种应用轨迹点绘制车辆在直线模拟图上显示的方法 | |
CN107038259B (zh) | 一种构造交通路网数据的作业方法及其*** | |
CN103292805B (zh) | 一种室内导航***及其室内导航方法 | |
CN104880725A (zh) | 铁路机车精确定位*** | |
CN104462384A (zh) | Gps数据库构建方法及基于该数据库的机车无线通信*** | |
CN116824006B (zh) | 一种地铁轨道svg图的自动生成方法 | |
CN107221183A (zh) | 一种公共交通工具实时报站方法及装置 | |
CN105608714A (zh) | 一种基于cad和gis协同的分幅影像生成方法及*** | |
CN109190940B (zh) | 考虑区域边界控制的普通公路交通情况调查站点布设方法 | |
JP2009015739A (ja) | 交通情報配信サーバ、交通情報配信システム、および交通情報配信方法 | |
CN117119374A (zh) | 一种地铁隧道内的人员位置定位方法 | |
CN101739497A (zh) | 图形标注位置自动计算方法 | |
CN108900978B (zh) | 一种基于移动终端信令数据的城市主干道路连接方法 | |
CN112182812B (zh) | 一种配电线路设计方法 | |
CN116205399A (zh) | 电缆通道资源管理*** | |
CN113207170B (zh) | 一种基于多源信令的位置融合校正方法 | |
CN115503792A (zh) | 城市轨道交通列车运行位置监测精准展示方法及装置 | |
CN114791940A (zh) | 一种数字孪生城市中道路名称计算方法、设备及*** | |
CN112287045B (zh) | 一种od客流热力图的提供方法及装置 | |
TW201715487A (zh) | 交通號誌狀態編碼方法及其系統 | |
CN1363822A (zh) | 自动侦测及修正路径的远端路径演算导航方法 | |
CN113657073B (zh) | 一种道路里程桩数据与路网数据的格式转换方法 | |
CN117472255A (zh) | 一种基于参数化的轨道交通双向电子地图生成方法及*** | |
CN111553966A (zh) | 基于ArcGIS API for JavaScript实现动画回放历史轨迹的方法 | |
WO2007007373A1 (ja) | 位置情報伝達装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |