張 敏,李春艷,王福田
(北京交通大學 交通運輸學院,北京 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 導航界面
在解決應急管理中地理位置信息不兼容的過程中,一維線性坐標系的里程向二維坐標系的經緯度轉換是首要問題。在查閱文獻后,研究了一種快速有效、輸入信息較少的算法,滿足了里程點的坐標換算,實現了一定精確度的要求,在此基礎之上,以百度地圖為例開發系統,實現了定位與導航。本文采用的模型中數據維度較少,數據采集簡單,計算模型和算法易于實現,可根據轉換得到的坐標導航到目的地,對應急管理中的救援具有重要意義。