胡秀宇
(中交鐵道設(shè)計(jì)研究總院有限公司,北京 100088)
?
基于Google Earth的鐵路橋梁水文計(jì)算應(yīng)用研究
胡秀宇
(中交鐵道設(shè)計(jì)研究總院有限公司,北京100088)
結(jié)合Google Earth三維影像圖像,開(kāi)發(fā)基于Google Earth的鐵路橋梁水文計(jì)算系統(tǒng)。系統(tǒng)采用Visual C++和Google Earth API進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)在Google Earth上勾繪匯水面積、流域長(zhǎng)度,計(jì)算水面坡度、斷面流量及地區(qū)暴雨強(qiáng)度,為鐵路橋梁前期勘察及水文研究提供了較為便捷的方法。
水文計(jì)算Google Earth水面坡度流量暴雨強(qiáng)度
在鐵路橋梁外業(yè)勘察設(shè)計(jì)中,特別是在初測(cè)階段,需要在1∶50 000地形圖上沿線路勾繪流域長(zhǎng)度及匯水面積,然后用求積儀計(jì)算出匯水面積。此種方法不僅耗時(shí)費(fèi)力,而且工作量極大,給橋梁前期勘察工作帶來(lái)極大的不便。自2005年Google Earth誕生以來(lái),其向全球免費(fèi)提供衛(wèi)星地圖影像資料,通過(guò)Google Earth客戶端可以隨時(shí)隨地獲取全球任意位置的衛(wèi)星圖像資料,如地形、地貌及建筑物等地理信息。Google公司會(huì)定期更新衛(wèi)星地圖影像資料,采用Google Earth提供的衛(wèi)星地圖影像資料勾繪水系圖時(shí),克服了紙版1∶5萬(wàn)地形圖年代久遠(yuǎn)、資料難以收集的缺點(diǎn)。同時(shí),通過(guò)Google Earth能夠快速便捷地獲取每個(gè)地標(biāo)的經(jīng)緯度、海拔高程等信息,這給鐵路橋梁外業(yè)勘察獲取水文斷面及橋址斷面數(shù)據(jù)帶來(lái)極大的方便。
為了充分利用Google Earth海量衛(wèi)星地圖影像信息,采用Visual C++和Google Earth API函數(shù)開(kāi)發(fā)了內(nèi)嵌Google Earth客戶端的鐵路橋梁水文計(jì)算應(yīng)用程序,實(shí)現(xiàn)了將鐵路橋梁水文計(jì)算與衛(wèi)星地圖影像資料的有機(jī)結(jié)合,對(duì)鐵路橋梁水文勘測(cè)尤其是國(guó)外鐵路項(xiàng)目水文勘測(cè)具有重要意義。
2.1Google Earth簡(jiǎn)介
Google Earth是由Google公司開(kāi)發(fā)的一款旗艦軟件,其集合了航拍照片、衛(wèi)星地圖及GIS數(shù)據(jù),形成了一個(gè)虛擬的三維地球模型。Google Earth數(shù)據(jù)主要來(lái)源于美國(guó)航天局的衛(wèi)星圖像,Google Earth上全球地貌影像的有效分辨率通常為30 m左右,但對(duì)大城市、建筑物、風(fēng)景區(qū)及其他古跡名勝地區(qū)會(huì)依據(jù)不同的視角高度提供不同的分辨率影像。視角高度為500 m時(shí)提供的分辨率為1 m,視角高度為350 m時(shí)提供的分辨率為0.5 m。因此,Google Earth提供的地形、地貌及其他建筑物的信息完全能滿足鐵路預(yù)可研或可研階段的精度要求。
2.2Google Earth API二次開(kāi)發(fā)
Google Earth為二次開(kāi)發(fā)提供了兩種擴(kuò)展接口,一種是KML文件形式,另一種是Google Earth API應(yīng)用程序接口。
KML是一種基于XML語(yǔ)法和文件格式的文件,可通過(guò)Google Earth加載直接顯示在衛(wèi)星地圖上。
Google Earth API是基于組件技術(shù)的應(yīng)用程序開(kāi)發(fā)接口,用戶可以基于VC++、VB、C#等不同的軟件開(kāi)發(fā)平臺(tái)來(lái)使用這些接口,完成特定的任務(wù)。
2.3KML文件結(jié)構(gòu)
KML文件采用XML文件的語(yǔ)法和文件形式。KML的下層包括Folder和document,其中Folder用來(lái)創(chuàng)建文件夾,Documeng用于創(chuàng)建目錄。Folder和Document包括很多tag,如Placemark用來(lái)表示指定位置的相關(guān)信息。Placemark包括的tag列表如下。
Name:指明地標(biāo)名稱
Desctiption:描述地標(biāo)屬性,支持HTML語(yǔ)法。
LookAt:描述地標(biāo)中視圖相關(guān)信息,如視高、視底點(diǎn)等。
Visibility:定義地標(biāo)是否顯示標(biāo)注內(nèi)容。
GeometryCollection:添加多個(gè)幾何形狀的集合。
GroundOverlay:添加圖片標(biāo)注,與lookat有關(guān)。
ScreenOverlay: 添加圖片標(biāo)注,與lookat有關(guān)。
Address:地標(biāo)位置的地址名稱[1]。
對(duì)于KML文件操作,可以調(diào)用IApplicationGE類(lèi)的OpenKmlFile()函數(shù),實(shí)現(xiàn)程序加載KMLKMZ文件以顯示在Googel Earth客戶端上。軟件打開(kāi)KML文件的函數(shù)如下。
BOOL OpenKmlFile(BSTR filename,BSTR suppressMessages);
Filename:打開(kāi)的文件名稱,
SuppressMessages:告知系統(tǒng)是否處理異常。
2.4Google Earth API
Google Earth API類(lèi)庫(kù)中擁有11個(gè)類(lèi):
IApplicationGE
ICameraInfoGE
IPointOnTerrainGE
IFeatureGE
IFeatureCollectionGE
IViewExtentsGE
ISearchControllerGE
ITourControllerGE
IAnimationControllerGE
ITimeGE,ITimeIntervalGE
其中IApplicationGE類(lèi)是最重要的,其他10個(gè)類(lèi)的使用都會(huì)涉及到IApplicationGE類(lèi)的屬性或函數(shù)[1]。
IApplicationGE類(lèi)是Google Earth API的重要接口,該接口可以提供其他程序控制Google Earth客戶端。
ICameraInfoGE類(lèi):通過(guò)該類(lèi)可以獲取視底點(diǎn)、視點(diǎn)高以及傾斜角度的相關(guān)參數(shù)。
IPointTerrainGE類(lèi):通過(guò)該類(lèi)可以獲取屏幕點(diǎn)的坐標(biāo)及高程數(shù)據(jù)[8]。
3.1程序界面
通過(guò)Visual C++編程將Google Earth嵌套在鐵路橋梁水文計(jì)算軟件中,以實(shí)現(xiàn)橋梁水文計(jì)算與衛(wèi)星三維影像地圖有機(jī)結(jié)合,方便查看橋位處的實(shí)際地形、地貌等特征。軟件啟動(dòng)并加載鐵路線位后的界面如圖1所示。
圖1 加載kml/kmz文件示意
3.2勾繪匯水面積
在前期勘察階段,可以通過(guò)Google Earth上直觀而清晰的三維影像地圖直接勾繪出山脊線及溝谷線,并沿鐵路線繪制匯水面積,如圖2所示。
圖2 勾繪匯水面積示意
3.3勾繪流域長(zhǎng)度
通過(guò)Google Earth勾繪橋位處溝谷或河流的流域長(zhǎng)度,如圖3所示。
圖3 勾繪流域長(zhǎng)度示意
3.4提取高程
對(duì)于橋址斷面、水文斷面和水坡的高程數(shù)據(jù),可以通過(guò)在Google Earth繪制直線,保存為KML格式文件[12],然后通過(guò)程序自動(dòng)提取線路上一定間距點(diǎn)的高程數(shù)據(jù)[11]。
3.5水文計(jì)算內(nèi)業(yè)整理
根據(jù)Google Earth提取的水坡高程數(shù)據(jù)可直接用于流域平均坡度計(jì)算。根據(jù)計(jì)算的流域坡度、提取的流域面積及長(zhǎng)度,再加上其他假定參數(shù)可以推算其暴雨強(qiáng)度值。而提取的水文斷面高程數(shù)據(jù)可用于推算斷面流量或水位高程;提取的橋址斷面高程數(shù)據(jù)可以用于推算橋址處的流量或水位高程。
如圖4所示為橋址處流域坡度計(jì)算界面,圖5為橋址處斷面流量計(jì)算界面。
圖4 流域坡度計(jì)算界面
圖5 斷面流量計(jì)算界面
研發(fā)了基于Google Earth的鐵路橋梁水文計(jì)算軟件,將Google Earth客戶端通過(guò)Google Earth API接口嵌入水文計(jì)算專業(yè)程序內(nèi),實(shí)現(xiàn)了鐵路橋梁水文外業(yè)勘測(cè)與Google Earth三維衛(wèi)星地圖影像的有機(jī)結(jié)合。通過(guò)該系統(tǒng)能夠快速獲取流域長(zhǎng)度、流域面積、地面點(diǎn)高程,為橋梁水文勘測(cè)提供一種方便快捷的方法。本程序已用于多條海外鐵路的水文外業(yè)勘測(cè)設(shè)計(jì)中,程序界面操作簡(jiǎn)單,使用方便,具有一定的推廣使用價(jià)值。
[1]王寬,龔曉鵬,等.Google API開(kāi)發(fā)詳解 Google Maps與Google Earth雙劍合璧:第2版[M].北京:電子工業(yè)出版社,2010
[2]鐵道部第三勘測(cè)設(shè)計(jì)院,鐵路工程設(shè)計(jì)技術(shù)手冊(cè).橋渡水文[M].北京:中國(guó)鐵道出版社,1999
[3]郭克析.Visual C++代碼參考與技巧大全[M].北京:電子工業(yè)出版社,2008
[4]韓紅芳,方莉娟.Google Earth COM API的高程提取[J].中國(guó)高新技術(shù)企業(yè),2013
[5]中華人民共和國(guó)鐵道部,TB10017—99鐵路工程水文勘測(cè)設(shè)計(jì)規(guī)程[S].北京:中國(guó)鐵道出版社,1999
[6]劉磊,仇菊香,劉曉紅.基于Google Earth API的二次開(kāi)發(fā)研究[J].測(cè)繪標(biāo)準(zhǔn)化,2011(5)
[7]王艷,何憑宗.基于VC++的Google Earth KML地標(biāo)文件的自動(dòng)生成及應(yīng)用[J].北京測(cè)繪,2009(3)
[8]陳國(guó)建,楊國(guó)祥,唐清榮,等.Visual C++范例開(kāi)發(fā)大全[M].北京:清華大學(xué)出版社,2010
The Research of Hydrology Calculation Applications ofRailway Bridges Based on Google Earth
HU Xiuyu
2016-05-05
胡秀宇(1984—),男,2007年畢業(yè)于蘭州交通大學(xué)土木工程專業(yè),工學(xué)學(xué)士,工程師。
1672-7479(2016)04-0024-03
U442.3; P208
B