张 敏,李春艳,王福田
(北京交通大学 交通运输学院,北京 100044)
铁路是我国重要的基础设施,一旦发生事故,将会造成严重后果和不良社会影响。因此,事故预防及应急管理至关重要。对于铁路突发事件来说,应急救援以及物资的配送主要通过公路和铁路两种方式。而铁路运输灵活性较差的特点决定了铁路救援及物资的配送必须与公路运输相结合[1]。在这种情况中,需要保证运输过程的连续性,其中,地理位置信息的兼容性是解决运输连续性的首要问题。
在铁路事故的应急救援中,事故地点所属单位向上级报告,只报告事故发生的时间、地点、线名、里程、事故相关单位和人员,即位置信息是通过线名和里程表述,是一维坐标系;而公路运输一般是利用经纬度来确定事故发生地点进行救援,即二维坐标系。在实施救援过程中,这就需要一种能够快速进行坐标转换,并能按转换得到的坐标进行定位与导航的方法。
目前,对于应急管理的研究,主要集中在理论和实践两方面。铁路应急管理理论研究主要集中在应急救援处置、预案、资源与物流、评价体系等方面;在实践方面,主要是指铁路应急管理信息系统和应急平台的建设,如铁路局应急救援指挥系统[2]。里程和二维坐标的转换主要应用在公路、铁路施工过程中的测量环境环节[2-6],包括3方面的内容:(1)里程与二维坐标的相互转换,如孙慧敏等[3]采用里程、偏距坐标系统,根据设计的参数与工程坐标系统进行相互转换;(2)二维坐标向里程的转换,如李富强等[4]根据组成路线的线型的不同,使用CASIO fx-4800p袖珍计算器把测量坐标变换为路线里程的方法;(3)里程向二维坐标转换,如高润喜[5]分别用导线法与偏距法计算了曲线桥梁墩台中心坐标,并进行了比较,在使用偏距法时按照线型的不同分别计算。综上所述,将一维坐标系转换为二维坐标系存在多种方法,但一般来说存在计算复杂、参数较多或需按线型分情况讨论的问题。原有应急管理平台大多集成在PC端,缺乏灵活性,不能直接借助平台导航到事故地点。
本文针对事故发生地点在铁路运输和公路运输中的描述不兼容的问题,研究一种快速有效的坐标转换算法,在此基础上设计基于移动终端的铁路工务应急定位与导航服务系统,建立铁路线路中里程与经纬度坐标的映射数据库,绘制铁路线路图,实现定位与导航。
利用MapInfo中铁路线的基础图层生成控制点数据。从图1可以看出,控制点是铁路线路中已知坐标的点,属性主要包括:线路名(railName)、里程(mileage)、纬度(lat)、经度(longi)。这里的经纬度坐标系为WGS84[7]。铁路线路图是由相邻控制点连接的折线组成,如图1所示。
图1 铁路线路中的控制点
当事故地点P点上报时,需要输入P(railName,mileage)来计算P(longi,lat),分以下3种情况:
(1)P点是控制点中的一个。遍历所有控制点的railNamei和mileagei,查找railNamei=railName且mileagei=mileage,则获得经纬度。
(2)P点是折线段上的一点。遍历所有控制点数据,找出P点所在的线段,即起始点和终止点,根据比例关系求P点的经纬度坐标。起始点的里程为startMileage,纬度为startLat,经度为startLongi;终止点的里程为endMileage,纬度为endLat,经度为endLongi。公式如下:
(3)以上2种情况都不符合。如图1所示,铁路线路图中第一个控制点并不是铁路中里程为0的点,即存在部分里程点的mileagei值小于第一个控制点的mileage值。这时候需要选取邻近控制点进行近似处理。
以京沪线中马家堡立交为例,马家堡立交的中心里程为10.014:(1)判断控制点中是否存在mileagei=10.014的点,经过查询不存在;(2)判断是否为折线段上的一点,根据京沪线折线段数据得知,马家堡立交的中心里程是折线段133上的一点,则可根据式(1)、式(2)分别求出马家堡立交的纬度和经度。
经过实例检验[6],里程点的坐标换算满足一定精确度的要求。而铁路救援及物资配送中对事故地点定位的精确度要求不高,更侧重快速和可到达性,即利用网络地图实现定位与导航。以百度地图为例,即需要将上述所求坐标转换为百度坐标,借助百度地图接口实现定位,并导航到目的地。
铁路工务应急定位与导航服务系统是指在移动终端利用网络地图接口开发App,利用网络地图中的地图服务绘制高精度铁路线路图,建立铁路线路中里程坐标与经纬度坐标的映射关系数据库,用户能够根据里程坐标或工务设备名称进行应急定位,基于网络地图进行导航。系统功能,如图2所示。
图2 功能设计
利用铁路线路中运营里程和经纬度的映射关系,在网络地图的基础图层中绘制铁路线路图。
分2种定位方式:(1)以铁路线路名、里程定位;(2)以工务设备名称定位,实现按照用户输入信息定位,并使其显示在以网络地图为基础的图层上。
借助网络地图提供的接口,实现按用户输入的关键词进行搜索与定位,确定用户出发点。
借助网络地图提供的接口,实现从出发点到事故地点的导航。
开发铁路工务应急定位与导航服务系统,需要建立铁路线路的里程坐标、设备名称与经纬度坐标的映射关系数据库。用户在系统的使用过程中只对数据库中的数据进行查询,因此选择将数据库封装到应用程序中。同时管理人员需要定期对数据库进行维护,主要包括控制点数据,工务设备数据和里程处理表。(1)控制点数据指运营里程和经纬度的映射关系数据;(2)工务设备数据指工务设备名称与中心里程之间的映射数据;(3)里程处理表是指对相邻控制点进行里程做差得到的数据。
系统以Java作为主要开发语言,选用Android Studio作为集成开发环境,利用百度地图接口,按功能设计进行开发。本节将选取系统中的重要功能做简要介绍。
图3是应用程序的主界面。在开发过程中,选取了京沪线的部分数据,从图中可以看到,京沪线的线路图为用户提供了2种定位方式。
图3 绘制铁路线路图界面
图4、图5分别是用户输入线名、里程或者工务设备名称进行定位的结果界面,并提供了导航的按钮。图4中,京沪线里程为5的位置在地图中用红色图标标识出来,在红色图标附近显示该位置在WGS84坐标系下的经纬度,同时在界面底部显示了该点的位置信息,包括线路名、里程和与用户当前位置的直线距离。图5中,京沪线马家堡立交用红色图标标识出来,并在附近显示该位置在WGS84坐标系下的经纬度,同时在界面底部显示了该设备名称及与用户当前位置的直线距离。
图6为用户导航界面,利用百度地图接口实现。图中为从北京站导航到马家堡立交,显示到达时间以及导航路线,并向用户提供文字导航、语音播报。
图4 输入里程定位界面
图5 输入工务设备名称定位界面
图6 导航界面
在解决应急管理中地理位置信息不兼容的过程中,一维线性坐标系的里程向二维坐标系的经纬度转换是首要问题。在查阅文献后,研究了一种快速有效、输入信息较少的算法,满足了里程点的坐标换算,实现了一定精确度的要求,在此基础之上,以百度地图为例开发系统,实现了定位与导航。本文采用的模型中数据维度较少,数据采集简单,计算模型和算法易于实现,可根据转换得到的坐标导航到目的地,对应急管理中的救援具有重要意义。