王 剛,韓振鏢
(1.天津市測(cè)繪院,天津300381;2.天津金宇信息技術(shù)有限公司,天津300384)
隨著智能終端操作系統(tǒng)技術(shù)、無(wú)線技術(shù)、3G技術(shù)及網(wǎng)絡(luò)通信技術(shù)的不斷發(fā)展與成熟,智能移動(dòng)終端不再僅僅停留在語(yǔ)音通信應(yīng)用領(lǐng)域,而是逐漸和互聯(lián)網(wǎng)應(yīng)用融為一體,成為互聯(lián)網(wǎng)應(yīng)用最為廣泛的終端之一。特別是隨著Google于2007年11月5日推出專為移動(dòng)設(shè)備設(shè)計(jì)的開源操作系統(tǒng)——Android[1]以來(lái),各種不同的應(yīng)用終端軟件如雨后春筍般出現(xiàn),大大推動(dòng)了移動(dòng)終端應(yīng)用的普及。
傳統(tǒng)的移動(dòng)GIS受制于硬件移動(dòng)設(shè)備和操作系統(tǒng),往往只停留在地圖瀏覽方面,極大地制約了移動(dòng)GIS應(yīng)用的不斷深入。隨著硬件移動(dòng)設(shè)備,特別是移動(dòng)存儲(chǔ)設(shè)備、移動(dòng)CPU設(shè)備、內(nèi)存設(shè)備等方面的變革,以及開源Android操作系統(tǒng)的成熟,移動(dòng)GIS技術(shù)也得到了質(zhì)的飛躍。本文將從Android平臺(tái)的架構(gòu)、地圖數(shù)據(jù)組織、功能實(shí)現(xiàn)、關(guān)鍵性技術(shù)的分析及應(yīng)用等方面探討智能移動(dòng)終端GIS實(shí)現(xiàn)的相關(guān)理論與方法。
Android系統(tǒng)是一款以Linux為內(nèi)核、開放式的手機(jī)操作系統(tǒng)。和目前存在的其他操作系統(tǒng)類似,其采用分層架構(gòu)設(shè)計(jì),從高層到低層依次為應(yīng)用程序?qū)印?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux核心層4 層結(jié)構(gòu)[2]。
1)linux核心層:基于Linux 2.6內(nèi)核開發(fā),主要用來(lái)提供系統(tǒng)的底層服務(wù),是硬件和軟件之間的抽象層。
2)系統(tǒng)運(yùn)行庫(kù)層:包括一組核心庫(kù),提供Java編程語(yǔ)言核心庫(kù)的大多數(shù)功能及Dalvik虛擬機(jī)。
3)應(yīng)用框架層:連接開發(fā)人員所開發(fā)應(yīng)用程序和核心應(yīng)用程序所需要的API框架。
4)應(yīng)用程序?qū)?隨同一系列核心應(yīng)用程序包一起發(fā)布的應(yīng)用程序。
移動(dòng)GIS主要由空間數(shù)據(jù)集、地理信息服務(wù)、無(wú)線網(wǎng)絡(luò)和移動(dòng)智能軟件終端4部分組成。其中,空間數(shù)據(jù)集是移動(dòng)GIS應(yīng)用的數(shù)據(jù)基礎(chǔ),它不僅指存儲(chǔ)在數(shù)據(jù)庫(kù)中的空間數(shù)據(jù),而且包括以文件形式存儲(chǔ)在服務(wù)器上的地圖或?qū)n}數(shù)據(jù)。無(wú)線網(wǎng)絡(luò)是連接移動(dòng)智能終端與地理信息服務(wù)的橋梁,其目前主要有兩類:一類是GSM、CDMA、3G等移動(dòng)通信無(wú)線網(wǎng)絡(luò);另一類是WiFi等無(wú)線廣域網(wǎng)絡(luò)。地理信息服務(wù)是GIS核心應(yīng)用的后臺(tái),借助無(wú)線網(wǎng)絡(luò)、移動(dòng)端GIS軟件訪問(wèn)架設(shè)在服務(wù)器上的地理信息服務(wù),從而快速、高效地完成相應(yīng)的GIS功能。移動(dòng)智能軟件終端則是一種易于攜帶、待機(jī)時(shí)間長(zhǎng)、適合野外環(huán)境使用、可以用來(lái)快速精確定位地理位置的設(shè)備。這四者之間的關(guān)系如圖1所示。
圖1 移動(dòng)GIS關(guān)系圖
經(jīng)過(guò)近10年的發(fā)展與應(yīng)用,在空間信息技術(shù)、通信技術(shù)、GPS技術(shù)及移動(dòng)硬件技術(shù)等方面的推動(dòng)下,移動(dòng)GIS技術(shù)已經(jīng)逐步成熟并投入到空間信息應(yīng)用領(lǐng)域。目前,根據(jù)移動(dòng)GIS建立中空間數(shù)據(jù)使用方式的不同,可以將應(yīng)用模式劃分為兩大類:一類是離線模式,另一類是在線模式。
離線模式主要是指空間信息的獲取、顯示、計(jì)算與分析不依賴任何網(wǎng)絡(luò),由移動(dòng)端自己完成。在這種模式下,安裝在移動(dòng)終端上的GIS不僅具有存儲(chǔ)、顯示、查詢和空間檢索的功能,而且還能處理一些簡(jiǎn)單的空間分析。移動(dòng)空間信息服務(wù)的建立主要側(cè)重于空間數(shù)據(jù)組織和功能服務(wù)的開發(fā)方面??臻g數(shù)據(jù)可以通過(guò)同步機(jī)制從計(jì)算機(jī)上獲取,直接存儲(chǔ)在閃存或存儲(chǔ)卡上;功能服務(wù)針對(duì)具體的需求而開發(fā)。這種模式主要借鑒了單機(jī)版GIS應(yīng)用思路,將空間數(shù)據(jù)和服務(wù)功能移植到移動(dòng)端上,從而實(shí)現(xiàn)本地存儲(chǔ)、管理、計(jì)算與分析。
因空間服務(wù)方式的不同,在線模式可劃分為兩類:“有線下載,無(wú)線服務(wù)[3]”模式和無(wú)線網(wǎng)絡(luò)模式。
(1)有線網(wǎng)絡(luò)模式
有線網(wǎng)絡(luò)模式與離線模式的主要區(qū)別是在建立移動(dòng)空間信息服務(wù)過(guò)程中對(duì)空間數(shù)據(jù)的準(zhǔn)備方式不同。前者需要移動(dòng)終端設(shè)備與服務(wù)中心的服務(wù)器通過(guò)有線網(wǎng)絡(luò)建立連接,從而下載所需要的空間數(shù)據(jù)并存儲(chǔ)到本地。由于此種模式下提供的功能服務(wù)都是在移動(dòng)終端本地完成的,因此同離線模式一樣,其具有數(shù)據(jù)訪問(wèn)速度快、系統(tǒng)響應(yīng)及時(shí)的優(yōu)點(diǎn),而且這種模式在Internet的任一節(jié)點(diǎn)都可以更新空間數(shù)據(jù)和其他數(shù)據(jù)。
(2)無(wú)線網(wǎng)絡(luò)模式
無(wú)線網(wǎng)絡(luò)模式主要是指移動(dòng)終端設(shè)備通過(guò)無(wú)線網(wǎng)絡(luò)與應(yīng)用服務(wù)器建立連接,實(shí)時(shí)地獲取所需的空間數(shù)據(jù)和專題數(shù)據(jù)。此種模式下,所有的服務(wù)、空間數(shù)據(jù)及專題數(shù)據(jù)都放在連接在互聯(lián)網(wǎng)的計(jì)算機(jī)上,服務(wù)的請(qǐng)求和響應(yīng)都需要無(wú)線網(wǎng)絡(luò)的支持。這種模式的優(yōu)點(diǎn)在于保證了數(shù)據(jù)和服務(wù)功能的實(shí)時(shí)性,應(yīng)該說(shuō)是移動(dòng)空間信息服務(wù)的最佳方式和最終目標(biāo)。
在實(shí)際應(yīng)用中,由于受到無(wú)線信號(hào)和通信費(fèi)用方面的制約,移動(dòng)GIS一般采取有線和無(wú)線網(wǎng)絡(luò)相結(jié)合的模式。對(duì)于地圖底圖側(cè)重于提供離線地圖包,從而減少網(wǎng)絡(luò)實(shí)時(shí)傳輸?shù)牧髁?而對(duì)于專題信息的查詢,則主要提供在線服務(wù)訪問(wèn),從而保證信息數(shù)據(jù)的實(shí)時(shí)性。
在“天地圖·天津”Android版移動(dòng)GIS建設(shè)中,筆者按照前面所述的移動(dòng)GIS的架構(gòu)思路,從數(shù)據(jù)層、地理信息服務(wù)層、應(yīng)用層3方面,設(shè)計(jì)、搭建并開發(fā)了該系統(tǒng),其架構(gòu)如圖2所示。
圖2 系統(tǒng)架構(gòu)圖
從圖2可以看出,數(shù)據(jù)層主要是為了解決移動(dòng)GIS應(yīng)用所需要的空間數(shù)據(jù)源問(wèn)題。在建設(shè)過(guò)程中,筆者將實(shí)際應(yīng)用的空間數(shù)據(jù)劃分為4類,依次為地圖瓦片數(shù)據(jù)、專題應(yīng)用數(shù)據(jù)、基礎(chǔ)地理數(shù)據(jù)、街景全景數(shù)據(jù);地理信息服務(wù)層則在網(wǎng)絡(luò)服務(wù)器端搭建基于上述4類的遵循OGC WMTS、WFS-G、WPF等國(guó)際標(biāo)準(zhǔn)的地理信息服務(wù);通過(guò)無(wú)線網(wǎng)絡(luò)(如Android系統(tǒng)的智能手機(jī)、平板電腦)和移動(dòng)GIS系統(tǒng)完成相應(yīng)的GIS功能,從而讓GIS觸手可及。
在移動(dòng)設(shè)備上,傳統(tǒng)的GIS應(yīng)用底圖一般采用矢量數(shù)據(jù),根據(jù)顯示窗口的不同實(shí)時(shí)繪制當(dāng)前窗口的地圖要素。這種方式的優(yōu)點(diǎn)在于,有利于數(shù)據(jù)的動(dòng)態(tài)更新和維護(hù);不足之處在于,由于移動(dòng)硬件設(shè)備和地圖綜合理論方面的不成熟,無(wú)法高效、美觀地展示地理空間要素。因此筆者采用地圖瓦片的方式來(lái)組織GIS的地圖數(shù)據(jù),對(duì)于需要在底圖上動(dòng)態(tài)展示的專題點(diǎn)、線、面采取坐標(biāo)值(坐標(biāo)串)來(lái)存儲(chǔ)和動(dòng)態(tài)繪制,而對(duì)于街景全景數(shù)據(jù)則采取長(zhǎng)方體的思想來(lái)組織數(shù)據(jù)。
(1)地圖瓦片數(shù)據(jù)組織[4]
地圖瓦片分塊策略源于瓦片金字塔模型[5]。在“天地圖·天津”省級(jí)節(jié)點(diǎn)建設(shè)中,筆者按照國(guó)家建立的CGCS2000,將全球地圖范圍的坐標(biāo)定義在[-180°,90°]、[180°,-90°]之間,天津區(qū)域按天津所在的經(jīng)緯度進(jìn)行切片,從而與國(guó)家主節(jié)點(diǎn)、其他省級(jí)節(jié)點(diǎn)數(shù)據(jù)通過(guò)坐標(biāo)層次和瓦片編碼統(tǒng)一起來(lái),以便于地圖數(shù)據(jù)的聚合調(diào)用。
按以上思路組織好圖瓦片數(shù)據(jù)后,筆者采取兩種方式來(lái)部署此類數(shù)據(jù)。一是通過(guò)在連接互聯(lián)網(wǎng)的服務(wù)器上搭建OGC WMTS的瓦片服務(wù),提供在線服務(wù);二是采用離線地圖包的形式,將一定地理范圍內(nèi)的地圖瓦片圖片文件存放到小型數(shù)據(jù)庫(kù)(Sqlite)中,并將地圖包拷貝到移動(dòng)終端上,從而移動(dòng)GIS軟件就可以直接調(diào)用該數(shù)據(jù)。
(2)360°街景全景數(shù)據(jù)組織
街景全景照片其實(shí)就是一張或一組一個(gè)地點(diǎn)360°全景視角的照片。街景全景照片遵循“等矩形投影[6]”,包括一個(gè)360°的水平視野(完整地繞一周)和一個(gè)180°的垂直視野(從正上方到正下方),這樣的視野(fields of view)形成了一張寬高比為2∶1的圖片。
街景數(shù)據(jù)組織和展示建立在長(zhǎng)方體模型的基礎(chǔ)上,通過(guò)對(duì)采集回來(lái)的街景全景數(shù)據(jù)進(jìn)行處理,筆者將一張街景全景照片切分為6張,根據(jù)視點(diǎn)視角的范圍調(diào)用相應(yīng)的圖片,從而避免不必要的街景數(shù)據(jù)的傳輸,以改善街景用戶體驗(yàn)效果。街景模型如圖3所示。
圖3 街景模型圖
移動(dòng)GIS系統(tǒng)的開發(fā)主要是結(jié)合當(dāng)今網(wǎng)絡(luò)通信技術(shù)的特點(diǎn),特別是在WiFi和3G網(wǎng)絡(luò)逐漸普及應(yīng)用的環(huán)境下,利用GIS技術(shù)、GPS技術(shù)、網(wǎng)絡(luò)傳輸技術(shù),面向移動(dòng)用戶提供更貼近現(xiàn)實(shí)工作和生活、具有強(qiáng)大的空間查詢和分析能力、具備良好用戶體驗(yàn)的地圖應(yīng)用軟件系統(tǒng)。
本系統(tǒng)的核心數(shù)據(jù)是空間數(shù)據(jù)和街景全景數(shù)據(jù)。要實(shí)現(xiàn)移動(dòng)端地圖顯示,需要解決在線或離線地圖源的讀取、傳輸、存儲(chǔ)與繪制問(wèn)題;要豐富智能移動(dòng)端用戶的體驗(yàn)和增強(qiáng)數(shù)據(jù)的多樣性,需要將地圖信息、空間位置、360°街景實(shí)景進(jìn)行融合,并結(jié)合智能設(shè)備所具有的羅盤功能、重力功能、多點(diǎn)觸摸功能及手指觸摸操作方式等,從地圖展示效果、操作方式來(lái)設(shè)計(jì)并實(shí)現(xiàn)移動(dòng)GIS功能。因此,本系統(tǒng)主要功能結(jié)構(gòu)如圖4所示。
(1)多點(diǎn)觸控技術(shù)(Multi-touch)
該技術(shù)使用戶不僅可以通過(guò)雙手進(jìn)行單點(diǎn)觸摸,也可以以單擊、雙擊、平移、按壓、滾動(dòng)及旋轉(zhuǎn)等不同手勢(shì)觸摸屏幕,實(shí)現(xiàn)隨心所欲地操控,從而更好更全面地了解對(duì)象的相關(guān)特征。多點(diǎn)觸控設(shè)計(jì)可分為兩個(gè)步驟:采集和判斷,其流程如圖5所示。
圖4 功能結(jié)構(gòu)圖
圖5 多點(diǎn)觸摸消息機(jī)制圖
(2)GPS定位機(jī)制
在Android系統(tǒng)平臺(tái)中,無(wú)論是基站定位還是GPS定位,主要用到了3個(gè)方面的接口或類,其中,LocationManager提供完成定位服務(wù)的功能,以及獲得最佳定位提供者的功能;LocationListener接口類提供定位信息發(fā)生改變時(shí)的回調(diào)功能,程序設(shè)計(jì)中必須在管理器中實(shí)現(xiàn)注冊(cè)監(jiān)聽對(duì)象;Geocoder用于完成地理編碼和反向地理編碼。
(3)多線程異步回調(diào)技術(shù)
多核CPU和Android系統(tǒng)在智能移動(dòng)端的集成有力地保證了網(wǎng)絡(luò)技術(shù)、GIS技術(shù)在移動(dòng)端的展示。在移動(dòng)GIS搭建中,為了保持系統(tǒng)性能,筆者采用多線程異步回調(diào)技術(shù),用分線程去處理那些CPU占用率較高的任務(wù)。其中,用主線程完成UI界面刷新和即時(shí)功能操作的響應(yīng),如UI界面的切換、按鈕的即時(shí)響應(yīng);用分線程去處理網(wǎng)絡(luò)通信,如地圖瓦片的讀取、GPS數(shù)據(jù)讀取等,從而提高了移動(dòng)端用戶的體驗(yàn)效果。
(4)應(yīng) 用
目前,在天津天地圖建設(shè)過(guò)程中,筆者按照移動(dòng)GIS建設(shè)的思路與策略,進(jìn)行了相關(guān)的開發(fā)工作,并取得了一定的成果。
按照瓦片金字塔模型組織地理底圖數(shù)據(jù),服務(wù)器端通過(guò)Nginx和PHP5搭建了遵循國(guó)際OGC標(biāo)準(zhǔn)的分布式網(wǎng)絡(luò)地圖切片服務(wù)(WMTS),在空間信息查詢與分析方面搭建了遵循國(guó)際OGC標(biāo)準(zhǔn)的網(wǎng)絡(luò)地名地址服務(wù)(WFS-G)和網(wǎng)絡(luò)處理服務(wù)(WPS),采用JSON格式組織矢量數(shù)據(jù),在網(wǎng)絡(luò)傳送方面運(yùn)用GZIP壓縮并傳輸數(shù)據(jù),從而初步搭建了“天地圖·天津”Android環(huán)境的移動(dòng) GIS。其在三星平板P7500上的運(yùn)行效果如圖6所示。
圖6 運(yùn)行效果圖
本文基于Android平臺(tái),從移動(dòng)GIS架構(gòu)、應(yīng)用方式、系統(tǒng)實(shí)現(xiàn)、關(guān)鍵性技術(shù)等方面對(duì)其進(jìn)行了簡(jiǎn)要探討。盡管移動(dòng)GIS已經(jīng)走向?qū)嵱茫捎谑苤悄芤苿?dòng)設(shè)備操作方式、設(shè)備屏幕尺寸及存儲(chǔ)空間等因素的影響,還存在以下幾方面需要研究和解決的問(wèn)題:①?gòu)臄?shù)學(xué)精度、操作方式上研究如何進(jìn)行移動(dòng)GIS空間數(shù)據(jù)的外業(yè)采集,讓外業(yè)測(cè)繪更智能;②矢量數(shù)據(jù)環(huán)境的移動(dòng)GIS實(shí)現(xiàn);③移動(dòng)GIS數(shù)據(jù)更新機(jī)制;④研究面向管理部門的行業(yè)移動(dòng)GIS。
隨著人們對(duì)空間信息需求的日益增大,移動(dòng)GIS的出現(xiàn)提供了一種在日常生活中準(zhǔn)確、快速獲取空間信息的方式,隨著面向社會(huì)大眾的LBS和MIS服務(wù)的不斷深入應(yīng)用,移動(dòng)GIS必將迎來(lái)更為廣闊的發(fā)展空間。
[1] 公磊,周聰.基于Android的移動(dòng)終端應(yīng)用程序開發(fā)與研究[J].計(jì)算機(jī)與現(xiàn)代化,2008(8):85-89.
[2] 靳巖,姚尚朗.Android開發(fā)入門和實(shí)戰(zhàn)[M].北京:人民郵電出版社,2009.
[3] 舒賢華.基于 Android平臺(tái)的手機(jī) Web地圖服務(wù)設(shè)計(jì)[D].大連:大連海事大學(xué),2009.
[4] 溫敏,艾麗蓉,王志國(guó).Android智能手機(jī)系統(tǒng)中文件實(shí)時(shí)監(jiān)控的研究與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2009,9(1):1717-1719.
[5] 朱欣焰.面向網(wǎng)絡(luò)的海最影像空間數(shù)據(jù)在線分發(fā)技術(shù)[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2003,28(3):288-293.
[6] 金潔.基于 Android平臺(tái)的校園街景的研究和實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2011.
[7] 公磊.基于 Android的 GPS測(cè)量系統(tǒng)開發(fā)[D].南昌:南昌大學(xué),2008.
[8] GONG Jianya,WANG Yandong.Federated Spatial Databases and Interoperability[J].Wuhan University Journal of Natural Sciences,2001,22(4):45-46.
[9] 馬俊海,黃明.車輛監(jiān)控系統(tǒng)中 GPS,GIS,GSM 的應(yīng)用[J].測(cè)繪通報(bào),2002(10):21-23.
[10] 豐江帆,張宏,沙月進(jìn).GPS車載移動(dòng)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[J].測(cè)繪通報(bào),2007(2):51-53.