CN116824006B - 一种地铁轨道svg图的自动生成方法 - Google Patents

一种地铁轨道svg图的自动生成方法 Download PDF

Info

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
Application number
CN202311068259.5A
Other languages
English (en)
Other versions
CN116824006A (zh
Inventor
徐志华
张力文
曾鹤祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales Sec Transportation System Ltd
Original Assignee
Thales Sec Transportation System Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Thales Sec Transportation System Ltd filed Critical Thales Sec Transportation System Ltd
Priority to CN202311068259.5A priority Critical patent/CN116824006B/zh
Publication of CN116824006A publication Critical patent/CN116824006A/zh
Application granted granted Critical
Publication of CN116824006B publication Critical patent/CN116824006B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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图的自动生成方法
技术领域
本发明涉及轨道交通信号技术领域,具体为一种地铁轨道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)为:
其中,sXeX分别为线段X的起点和端点,sYeY分别为线段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),根据点坐标及斜率绘制出列车。
CN202311068259.5A 2023-08-24 2023-08-24 一种地铁轨道svg图的自动生成方法 Active CN116824006B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) 一种室内导航系统及其室内导航方法
CN101582202B (zh) 空域管理与规划的装置
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) 位置情報伝達装置及び方法
CN114880533B (zh) 一种实现铁路里程标显示的系统和方法

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