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