地铁实时仿真方法、系统及计算机可读存储介质

文档序号:25858514发布日期:2021-07-13 16:13阅读:124来源:国知局
地铁实时仿真方法、系统及计算机可读存储介质

本发明涉及地铁仿真技术领域,尤其涉及地铁实时仿真方法、系统及计算机可读存储介质。



背景技术:

地铁是在城市中修建的快速、大运量、用电力牵引的轨道交通。列车在全封闭的线路上运行,位于中心城区的线路基本设在地下隧道内,中心城区以外的线路一般设在高架桥或地面上,英语为metro(undergroundrailway、subway)。地铁是涵盖了城市地区各种地下与地上的路权专有、高密度、高运量的城市轨道交通系统(metro)。

在信息技术快速发展的今天,逐渐步入大数据时代,数据可视化技术风起云涌。目前各种数据可视化项目层出不穷,但对于地铁运行情况进行可视化的项目尚未发现。



技术实现要素:

有鉴于此,本发明要解决的技术问题是提供地铁实时仿真方法、系统及计算机可读存储介质,能够对地铁的运行情况进行可视化。

本发明的技术方案是这样实现的:

一种地铁实时仿真方法,包括以下步骤:

s1、获取地铁运行数据;

s2、根据所述地铁运行数据建立地铁线路模型和地铁行速模型;

s3、根据所述地铁线路模型和所述地铁行速模型计算地铁的实时位置;

s4、在地图中显示地铁。

优选的,所述建立地铁线路模型包括:

获取所述地铁运行数据中的地铁线路数据,将地铁线路曲线分割成多条线段,获取线段两端的经纬度,通过haversin公式求各线段距离,建立地铁线路模型。

优选的,所述建立地铁行速模型包括:

获取所述地铁运行数据中的地铁发车时间和到站时间,根据地铁的运行距离获取地铁的均速,建立地铁行速模型。

优选的,所述s3具体包括:

根据地铁的运行时间和地铁的均速计算地铁的运行距离,根据所述地铁线路模型的线段距离确定地铁的位置信息。

优选的,所述s4具体包括:

建立三维地铁模型:建立服务器,引入引擎,创建场景对象、相机对象和渲染器对象,把场景、相机对象作为渲染器对象的参数,根据相机的放置方式拍摄已经创建好的三维场景对象;

三维地铁模型移动:规划路线,让三维地铁模型在路线上行驶。

本发明还提出了一种地铁实时仿真系统,包括:

获取模块,用于获取地铁运行数据;

建模模块,用于根据所述地铁运行数据建立地铁线路模型和地铁行速模型;

定位模块,用于根据所述地铁线路模型和所述地铁行速模型计算地铁的实时位置;

显示模块,用于在地图中显示地铁。

优选的,所述建模模块包括地铁线路建模单元和地铁行速建模单元;

所述地铁线路建模单元用于获取所述地铁运行数据中的地铁线路数据,将地铁线路曲线分割成多条线段,获取线段两端的经纬度,通过haversin公式求各线段距离,建立地铁线路模型;

所述地铁行速建模单元用于获取所述地铁运行数据中的地铁发车时间和到站时间,根据地铁的运行距离获取地铁的均速,建立地铁行速模型。

优选的,所述定位模块用于根据地铁的运行时间和地铁的均速计算地铁的运行距离,根据所述地铁线路模型的线段距离确定地铁的位置信息。

优选的,所述显示模块用于建立三维地铁模型:建立服务器,引入引擎,创建场景对象、相机对象和渲染器对象,把场景、相机对象作为渲染器对象的参数,根据相机的放置方式拍摄已经创建好的三维场景对象;

三维地铁模型移动:规划路线,让三维地铁模型在路线上行驶。

本发明还提出了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上述任一项所述的地铁实时仿真方法。

本发明提出的地铁实时仿真方法、系统及计算机可读存储介质,通过获取地铁运行数据,可以建立地铁线路模型和地铁行速模型,从而可以根据两个模型确定地铁的实时位置,将地铁的运行位置在地图上进行可视化显示。

附图说明

图1为本发明实施例提出的地铁实时仿真方法流程图;

图2为本发明实施例提出的地铁实时仿真系统框图;

图3为本发明实施例提出的地铁实时仿真方法的三维地铁可视化效果;

图4为http报文;

图5为响应报文头。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1至图5所示,本发明实施例提出了一种地铁实时仿真方法,包括以下步骤:

s1、获取地铁运行数据;

本实施例中,地铁的运行数据包括地铁的线路数据、、出发时间数据、到站时间等数据。

s2、根据所述地铁运行数据建立地铁线路模型和地铁行速模型;

建立地铁线路模型包括:

获取所述地铁运行数据中的地铁线路数据,将地铁线路曲线分割成多条线段,获取线段两端的经纬度,通过haversin公式求各线段距离,建立地铁线路模型。

虽然一条地铁走向是不规律的,但是当在一个很小的范围内,其走向大致为直线,只要找到该直线两端经纬度即可得到这条直线。因此对两端经纬度进行拾取。

在直线两端经纬度已知的情况下,就可以求得该直线的长度。半正矢公式(haversine公式)是一种根据两点的经度和纬度来确定大圆上两点之间距离的计算方法,在导航有着重要地位。它是球面三角学中“半正矢定理”公式的特例,该定理涉及了球面三角形的边和角。

半正矢公式(haversine公式)为:

其中,d是两地间距离,r为地球半径,表示两点的纬度;λ1和λ2表示两点的经度。

借助半正矢公式,我们求得线路每一小段的距离。

建立地铁行速模型包括:

获取所述地铁运行数据中的地铁发车时间和到站时间,根据地铁的运行距离获取地铁的均速,建立地铁行速模型。

在已知地铁发车时间和到站时间的前提下,假设地铁做匀速运动,这样可以求得地铁的近似运行速度,从而求得在某一时刻地铁的运行里程,继而将地铁的位置限定在某一线段内。

s3、根据所述地铁线路模型和所述地铁行速模型计算地铁的实时位置;

根据地铁的运行时间和地铁的均速计算地铁的运行距离,根据所述地铁线路模型的线段距离确定地铁的位置信息。

在线段两端经纬度已知的情况下,我们即可求得该时刻地铁所在的经纬度。

上述过程简化表述为:将曲线打断成数个小线段,将给定时刻地铁位置限定在某一长度x的线段区间内,计算该点到该线段一端的差δx,求δx/x,即可近似获得该点经纬度。

s4、在地图中显示地铁。

建立三维地铁模型:建立服务器,引入引擎,创建场景对象、相机对象和渲染器对象,把场景、相机对象作为渲染器对象的参数,根据相机的放置方式拍摄已经创建好的三维场景对象;

三维地铁模型移动:规划路线,让三维地铁模型在路线上行驶。

三维地铁模型导入:首先,设立该发明所需服务器,并在html文件引入three.js引擎,其次,创建了场景、相机、渲染器三个最顶层的总对象,然后通过总对象的子对象、方法和属性进行设置,相机对象和渲染对象相对简单,最复杂的是场景对象,newthree.mesh(box,material);使用构造函数mesh()创建了一个网格模型对象,该对象把上面两行含有顶点位置信息的几何体对象和含有颜色信息的材质对象作为参数,网格模型创建好之后,需要使用场景对象的方法.add()把三维场景的子对象添加到场景中,newthree.pointlight(0xffffff);、newthree.ambientlight(0x444444);定义了两个点光源、环境光对象,然后作为场景的子对象插入场景中。场景、相机、渲染器设置完成后,设置代码renderer.render(scene,camera)把场景、相机对象作为渲染器对象方法render()的参数,这句代码的意义相当于告诉浏览器根据相机的放置方式拍摄已经创建好的三维场景对象。

三维地铁模型平滑移动实现:地铁运行模拟窗口以2d/3d地图为背景模拟现实中地铁的运行环境,以三维地铁模型浮于地图表面这种方式模拟地铁运行。要让三维地铁模型在地图上动态平滑移动,要先规划路线,其次让地铁图标在路线上行驶。首先需要传入两点的经纬度,并计算出路径的方位,模拟出线路。函数声明:functiongetpoins(prvepoint,newpoint,num)。在该函数中,prvepoint起点,newpoint终点,num取两中间的点个数。返回points两点之间的num个点的数组。通过对经纬度差的分割,将点数组结合成地铁模拟线路。其次,要模拟地铁的速度。需要运用模拟线路的所有点,以及data数据中的时间,通过时间差,move()函数进行移动,move函数中通过settimeout()函数进行运行时间控制,从而模拟出地铁速度。setposition()函数进行点之间的跳跃。并通过递归实现点的不断跳跃,也就是地铁的移动。三维地铁可视化效果如图3所示。

本申请中,可以通过mysql建立数据库,并且运用websocket技术实现多窗口间的通信联动。

mysql建立数据库,分为六个阶段。

(1)需求分析阶段,准确了解与分析用户需求(包括数据与处理);

(2)概念结构设计阶段,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体dbms的概念模型;

(3)逻辑结构设计阶段,将概念结构转换为某个dbms所支持的数据模型,对其进行优化;

(4)数据库物理设计阶段,为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法);

(5)数据库实施阶段,运用dbms提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果。建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

(6)数据库运行和维护阶段,数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改

对于websocket技术的应用,既然是基于浏览器端的web技术,那么它的通信肯定少不了http、websocket本身虽然也是一种新的应用层协议,但是它也不能够脱离http而单独存在。具体来讲,在客户端构建一个websocket实例,并且为它绑定一个需要连接到的服务器地址,当客户端连接服务端的时候,会向服务端发送一个类似图4的http报文。

注意该报文中有一个upgrade首部,它的作用是告诉服务端需要将通信协议切换到websocket,如果服务端支持websocket协议,那么它就会将自己的通信协议切换到websocket,同时发给客户端类似于图5的一个响应报文头。

返回的状态码为101,表示同意客户端协议转换请求,并将它转websocket协议。以上过程都是利用http通信完成的,称之为websocket协议握手,进过这握手之后,客户端和服务端就建立了websocket连接,以后的通信走的都是websocket协议了。

如图2所示,本发明还提出了一种地铁实时仿真系统,包括:

获取模块1,用于获取地铁运行数据;

建模模块2,用于根据所述地铁运行数据建立地铁线路模型和地铁行速模型;

定位模块3,用于根据所述地铁线路模型和所述地铁行速模型计算地铁的实时位置;

显示模块4,用于在地图中显示地铁。

在本发明的一个优选实施例中,建模模块包括地铁线路建模单元和地铁行速建模单元;

所述地铁线路建模单元用于获取所述地铁运行数据中的地铁线路数据,将地铁线路曲线分割成多条线段,获取线段两端的经纬度,通过haversin公式求各线段距离,建立地铁线路模型;

所述地铁行速建模单元用于获取所述地铁运行数据中的地铁发车时间和到站时间,根据地铁的运行距离获取地铁的均速,建立地铁行速模型。

在本发明的一个优选实施例中,所述定位模块用于根据地铁的运行时间和地铁的均速计算地铁的运行距离,根据所述地铁线路模型的线段距离确定地铁的位置信息。

在本发明的一个优选实施例中,所述显示模块用于建立三维地铁模型:建立服务器,引入引擎,创建场景对象、相机对象和渲染器对象,把场景、相机对象作为渲染器对象的参数,根据相机的放置方式拍摄已经创建好的三维场景对象;

三维地铁模型移动:规划路线,让三维地铁模型在路线上行驶。

本发明还提出了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上述任一项所述的地铁实时仿真方法。

本发明提出的地铁实时仿真方法、系统及计算机可读存储介质,通过前后端通信,从数据库中获取上海地铁线路信息。其次,利用haversin公式求各分割段距离,建立地铁线路模型。然后,通过利用数据库中地铁发车时间及到站时间求地铁均速,构建地铁运行速度模型。接着通过事先设立或前端输入的所求时刻,经过地铁线路模型和地铁行速模型,定位地铁所在时刻所处位置。最后,基于three.js技术,对地铁三维模型进行了构建,将所求经纬度处的地铁信息可视化于地图上。运行模式是通过道路交通监控信息传输至计算机大数据分析中心,由计算机按照人为设定的一定参数作出相应的判断,再发出指令,并传输至执行端,引导交通流进行改变,形成良性循环。进一步为出行者提供了方便快捷的服务,在交通数据收集上为管理者提供了大量准确可靠的数据支撑,节约了管理成本,使得城市变得更智慧、更人性化。实现了地铁运行动态模拟,用户可以快速获得地铁的相关动态,从而更好地规划自己的出行时间和方案。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1