摘 要:隨著智能手機(jī)的發(fā)展和普及以及各種地圖導(dǎo)航軟件的發(fā)展,目前手機(jī)地圖已經(jīng)成為人們外出的重要工具之一。但是在鐵路、公路、電力等線性工程的前期設(shè)計(jì)階段,還沒有專業(yè)的手機(jī)地圖輔助軟件。因此,有必要針對(duì)此類工程的前期需求進(jìn)行相關(guān)研究。文章就提出了一種Android系統(tǒng)中高德地圖加入kml文件的方法。
關(guān)鍵詞:高德地圖API;鐵路;kml文件
1概述
近年來隨著鐵路的跨越式發(fā)展,在現(xiàn)今的各類交通和運(yùn)輸?shù)牟呗灾?,鐵路當(dāng)之無愧成為運(yùn)輸成本低,效率高以及出行和貨運(yùn)的首選方式。根據(jù)“十三五”規(guī)劃,到2020年,高鐵運(yùn)營里程達(dá)到3萬公里,這意味著未來五年1萬多公里的高鐵需要開通。在鐵路的前期規(guī)劃設(shè)計(jì)階段,外業(yè)勘測(cè)采集數(shù)據(jù)還難免的采用手寫紙記的方式。同時(shí)隨著智能手機(jī)的發(fā)展和普及以及各種地圖導(dǎo)航軟件的發(fā)展,導(dǎo)航軟件逐漸成為大眾不可或缺的手機(jī)軟件。kml(Keyhole Makeup Language)主要采用擴(kuò)展性的標(biāo)記類型語法以及文件式的數(shù)據(jù)格式,能夠?qū)崿F(xiàn)地理數(shù)據(jù)的客戶端展示[1]。kml目前已經(jīng)成為各大地理信息平臺(tái)通用的標(biāo)準(zhǔn)文件之一。如果鐵路線路前期設(shè)計(jì)選線階段能結(jié)合手機(jī)導(dǎo)航軟件及kml文件,在外業(yè)測(cè)繪調(diào)查階段實(shí)現(xiàn)智能化,必將達(dá)到事半功倍的效果。其中,kml文件作為數(shù)據(jù)轉(zhuǎn)換的關(guān)鍵,將其融入目前主流的手機(jī)地圖軟件尤為重要。
2 Android簡(jiǎn)介
Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。目前Android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。在優(yōu)勢(shì)方面,Android平臺(tái)首先就是其開發(fā)性,開發(fā)的平臺(tái)允許任何移動(dòng)終端廠商加入到Android聯(lián)盟中來。Android平臺(tái)提供給第三方開發(fā)商一個(gè)十分寬泛、自由的環(huán)境,不會(huì)受到各種條條框框的阻擾。Google服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而作為Google公司旗下的Android平臺(tái)手機(jī)將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。
3 解析kml文件的方法
kml文件是一種特殊XML文件,其讀取解析方式與網(wǎng)頁瀏覽器處理HTML和XML文件的方式類似,此類文件具有的平臺(tái)無關(guān)性,語言無關(guān)性,系統(tǒng)無關(guān)性,給數(shù)據(jù)集成與交互帶來了極大的方便。目前已經(jīng)成為各大地理信息系統(tǒng)統(tǒng)一的數(shù)據(jù)文件,因此采用kml文件作為數(shù)據(jù)文件,可以為將來結(jié)合其他平臺(tái)數(shù)據(jù)提供基礎(chǔ)。以下是一個(gè)簡(jiǎn)單的kml文件的內(nèi)容:
目前基于JAVA語言的解析方法都已成熟,基本的解析方式有兩種,一種叫SAX,另一種叫DOM。SAX是基于事件流的解析,DOM是基于XML文檔樹結(jié)構(gòu)的解析。在此次的研究中,我們主要是提取kml文件中各標(biāo)記點(diǎn)的坐標(biāo)值,即
4 高德地圖API
高德地圖API中的Android SDK 是一套地圖開發(fā)調(diào)用接口,供開發(fā)者在自己的Android應(yīng)用中加入地圖相關(guān)的功能。開發(fā)者可以輕松地開發(fā)出地圖顯示與操作、室內(nèi)外一體化地圖查看、興趣點(diǎn)搜索、地理編碼、離線地圖等功能。其中,高德地圖提供了可以添加地圖覆蓋物的接口。所有疊加或覆蓋到地圖的內(nèi)容,統(tǒng)稱為地圖覆蓋物。如標(biāo)記、矢量圖形元素(包括:折線、多邊形和圓)等。
例如,繪制一個(gè)虛線三角形的代碼如下:
在高德地圖提供的該類接口中,所有的覆蓋物均由地理坐標(biāo)來確定位置,此步可以按照類別讀取從kml文件中解析得到的坐標(biāo),加載至高德地圖上,從而實(shí)現(xiàn)加載kml文件的目的。
5 WGS84坐標(biāo)與高德地圖坐標(biāo)系統(tǒng)的轉(zhuǎn)換
目前將設(shè)計(jì)用北京54及西安80坐標(biāo)系轉(zhuǎn)為WGS84的方法均已成熟[2],但是結(jié)合實(shí)際情況,網(wǎng)絡(luò)地圖坐標(biāo)均是經(jīng)過加密后的坐標(biāo),因此直接使用由kml解析出來的WGS84坐標(biāo)導(dǎo)入高德地圖,將產(chǎn)生標(biāo)注與地圖不匹配的現(xiàn)象。針對(duì),這一現(xiàn)象高德地圖API提供了一個(gè)CoordinateConvert類,該類可以將常見的坐標(biāo)類型轉(zhuǎn)化為高德地圖。轉(zhuǎn)換代碼如下:
這樣,我們?cè)趯⒏采w物加載之前需要將解析到的WGS84坐標(biāo)轉(zhuǎn)換成高德坐標(biāo)后再加載,就可以處理坐標(biāo)不統(tǒng)一的問題。
6 結(jié)論與展望
文章介紹了一種簡(jiǎn)單可行的將kml文件加載于高德地圖上的方法。該方法可以方便外業(yè)人員進(jìn)行定位和尋找目的地。同時(shí),也可以結(jié)合智能手機(jī)的交互操作及定位功能,將采集到的數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫中并生成kml文件輸出。可以大大的節(jié)省外業(yè)數(shù)據(jù)的處理時(shí)間,達(dá)到事半功倍的效果。
參考文獻(xiàn)
[1]蔡曉樺.云計(jì)算及其在地理信息系統(tǒng)中的應(yīng)用[J].江西測(cè)繪,2012(1):39-41.
[2]許捍衛(wèi).移動(dòng)式GIS發(fā)展的關(guān)鍵技術(shù)及應(yīng)用前景[J].測(cè)繪工程,2003,12(1):34-36.