孔愛婷 劉健 余旭
(1廣東工業(yè)大學土木與交通工程學院,廣東廣州510006;2中國極地研究中心,上海200136)
近年來,各南極考察國家在南極開展了大量的GIS研究活動,包括空間數(shù)據(jù)采集和管理、測繪和制圖等方面[1]。在南極,標志性的地物不多,早期在南極探險的人們通過觀測太陽和星星來確定位置,到了20世紀80年代后期,南極人員普遍采用GPS定位的方法。為了尋找某個地點,南極考察人員需要耗費大量的精力。手機地圖定位服務(wù)的便攜性和數(shù)據(jù)的實時性可以很好地解決這一問題。
現(xiàn)在的智能手機有著極高的集成性,為在手機上開發(fā)測繪及地理信息系統(tǒng)(GIS)相關(guān)軟件提供了有利的條件并有著廣闊前景[2]。利用Android平臺[3]開發(fā)手機地圖定位軟件成為了目前的研究熱點,如:利用Google Map API技術(shù),開發(fā)基于Android手機平臺的地圖應用[4-5];通過調(diào)用已發(fā)布的Arc-GISServer[6]地圖服務(wù)研究實時跟蹤和快速準確的地理定位[7];采用方向傳感器和GPS模塊,開發(fā)野外使用的Android軟件[8]。目前大部分的人員定位軟件主要是以網(wǎng)絡(luò)的方式實現(xiàn),不適合在極地考察的南極人員使用。因此,開發(fā)適合南極人員使用的移動終端地圖定位軟件有著重大的現(xiàn)實意義。
本文所實現(xiàn)的南極人員定位軟件基于Android平臺開發(fā),采用的地圖是經(jīng)過ArcGIS處理的衛(wèi)星圖像,該手機軟件可以用來瀏覽南極中山站和長城站地圖,并能對其進行放大縮小等漫游操作,同時具有無網(wǎng)絡(luò)實時定位、電子指南針、導航、位置記錄等功能,滿足了南極用戶基本的手機地圖定位服務(wù)需求。
南極人員定位軟件建設(shè)以實現(xiàn)無網(wǎng)絡(luò)實時定位為目標,以 Android為開發(fā)平臺,以ArcGIS插件[9]為基礎(chǔ),結(jié)合計算機技術(shù)、GPS定位技術(shù)和ArcGIS Server地圖緩存技術(shù),實現(xiàn)地圖瀏覽、定位、電子羅盤、導航、記錄、計算距離等功能。
由于南極部分區(qū)域還不具備數(shù)據(jù)訪問的無線網(wǎng)絡(luò)通訊環(huán)境,因此在移動地理信息框架支撐方面選擇具備離線數(shù)據(jù)支持的輔助方法。軟件采用Arc-GISServer地圖緩存技術(shù),ArcGIS Runtime SDK for Android v10.1.1插件,以Eclipse作為開發(fā)平臺,以安卓手機Android 4.1.2作為真機測試。
根據(jù)南極人員出行考察的需要和Android平臺的特點,南極人員定位軟件設(shè)計的功能如圖1所示。
圖1 軟件功能整體架構(gòu)Fig.1.Software architecture of functions
(1)底圖切換功能:用戶可以根據(jù)所在位置選擇對應的底圖;
(2)地圖控制:實現(xiàn)地圖放大、縮小、平移等漫游操作,并提供導航功能;
(3)位置定位:每間隔20 s自動更新位置;
(4)記錄功能:標記當前位置,包括添加和刪除功能;
(5)計算距離:計算當前位置與記錄位置的距離。
軟件的開發(fā)實現(xiàn)包括開發(fā)環(huán)境的配置;地圖緩存的生成;定位模式的選擇;記錄位置、電子指南針等功能的開發(fā)。
根據(jù)電腦的操作系統(tǒng),下載安裝對應軟件,環(huán)境配置過程如下:(1)安裝JDK 1.6;(2)安裝Eclipse 4.3;(3)安裝SDK并設(shè)置環(huán)境變量;(4)安裝ADT;(5)安裝ArcGIS插件。
底圖的設(shè)計有兩種方案:一是把中山站和長城站的影像疊加在世界地圖上,優(yōu)點是在空間上呈現(xiàn)無縫的特點,缺點是創(chuàng)建后的緩存非常大;二是使用局部區(qū)域底圖,提供選擇底圖功能,優(yōu)點是創(chuàng)建后的緩存大幅減少,缺點是僅限于指定地區(qū)使用。
對這兩種方案的地圖進行緩存切片研究,研究結(jié)果如表1所示。從表1可以看出,地圖緩存的大小與地圖范圍和緩存比例尺有關(guān),如果使用方案一,在保證底圖清晰的前提下,切片后的緩存必定很大,這樣會造成手機存儲容量的壓力,基于對比結(jié)果,選擇方案二,這樣既保證了底圖分辨率,也控制了緩存大小。
表1 緩存研究結(jié)果Table 1.The results of cache study
軟件以1∶4 000為最大比例尺,選擇6個比例級別,生成地圖緩存,步驟為:(1)對中山站影像和長城站影像分別使用ArcMap配置底圖;(2)應用ArcGISServer地圖服務(wù)器發(fā)布地圖服務(wù);(3)對底圖的地圖服務(wù)創(chuàng)建緩存。
手機定位方式有基站定位、GPS定位、Wifi定位、Assist GPS定位,考慮到南極特殊的地理環(huán)境,本軟件采用不依賴于網(wǎng)絡(luò)的GPS定位這種模式,在地球任何一個上空無遮擋的地方只需要同時接收到四顆或以上的衛(wèi)星信號就可以獲取經(jīng)緯度。
為了證明定位數(shù)據(jù)的準確性,對任意兩個點采用GPS靜態(tài)測量技術(shù)進行測量,得到這兩個點的坐標,分別是 113°23'18.91″E、23°02'27.43″N和113°23'33.34″E、23°02'06.26″N;使用手機每隔 20 s獲取這兩個點的坐標,對獲取的10組數(shù)據(jù)取平均后的坐標,分別是 113°23'18.71″E、23°02'27.91″N和113°23'36.51″E、23°02'11.61″N。 從測試結(jié)果可以看出,手機GPS與GPS接收機所獲得的數(shù)據(jù)之差在6″的范圍內(nèi)。手機GPS定位在空曠環(huán)境中能達到幾米至幾十米的精度,在一般環(huán)境中能達到幾十米至幾百米的精度。雖然不能和專業(yè)的接收機相比,但能夠滿足人員定位的一般需要[10]。
用Android提供的地理位置服務(wù)功能API獲取當前的位置。這里主要用到LocationManager和LocationListener功能類進行定位實現(xiàn),其中Location-Manager提供定位服務(wù)的功能;LocationListener提供定位信息發(fā)生改變時的回調(diào)功能。
由于南極沒有太多明顯的地物,因此軟件設(shè)計時提供記錄當前點位置的功能,可以應用在如海冰卸貨(記錄冰縫位置)、野外作業(yè)(記錄站點或標識物位置)等情況下。記錄的標記采用數(shù)字疊加圖標的顯示方式。主要是根據(jù)當前的位置信息添加圖標和添加按順序的數(shù)字,并保存記錄點的信息。主要用到ArrayList數(shù)組類保存記錄點的信息和TextSymbol文本符號類型添加按順序的數(shù)字。
Android系統(tǒng)可支持多種傳感器類型,本程序主要使用到方向傳感器。用Android提供的API調(diào)用傳感器,這里主要用到SensorManager和SensorEventListener功能類獲取手機繞Z軸旋轉(zhuǎn)的角度,再根據(jù)此角度旋轉(zhuǎn)圖標,在底圖服務(wù)基礎(chǔ)上疊加此圖標。然后設(shè)置一個監(jiān)聽器,利用監(jiān)聽接口onSensorChanged來讀取具體感應內(nèi)容,從而實現(xiàn)電子指南針。
每個功能模塊實現(xiàn)后,運行程序,測試過程如表2所示,選取幾個運行畫面如圖2至圖7所示,從測試結(jié)果可以看出,整體設(shè)計滿足要求,實現(xiàn)了選擇底圖功能、顯示離線地圖、GPS定位、添加標記、記錄該點位置、電子指南針指向正確、計算距離、放大、縮小等功能,而且定位數(shù)據(jù)準確,運行流暢。
表2 測試過程Table 2.The process of testing
南極人員定位軟件關(guān)鍵是實現(xiàn)無網(wǎng)絡(luò)實時定位,加載離線地圖和添加一些輔助功能。
(1)ArcGIS地圖緩存技術(shù) 軟件采用處理后的衛(wèi)星圖像作為底圖,利用ArcGIS Server創(chuàng)建地圖緩存,利用ArcGISLocalTiledLayer類調(diào)用移動終端地圖緩存。ArcGIS地圖緩存的主要問題是緩存大小與緩存分辨率相矛盾的問題,因此采用切換底圖的方法,這樣既保證了地圖的分辨率,又控制了緩存的大小。
(2)投影轉(zhuǎn)換技術(shù) 為了使獲取的位置信息可視化,采用圖形類Graphic對相關(guān)位置進行圖標注記和文字注記。由于GPS獲取的位置坐標是WGS-84坐標系下的大地坐標,即用經(jīng)緯度高程(B,L,H)表示的坐標;地圖使用的是墨卡托投影的直角坐標,是用(X,Y)表示的平面坐標。因此,在不考慮高程參與轉(zhuǎn)換的前提下,使用ArcGIS Android API提供的GeometryEngine類將GPS獲取的經(jīng)緯度投影到地圖上。
圖2 GPS設(shè)置界面Fig.2.GPS interface settings
圖3 選擇底圖Fig.3.Basemap selection
圖4 記錄位置Fig.4.Position record
圖5 總體效果圖Fig.5.Overall effect diagram
圖6 顯示距離Fig.6.Distance shows
圖7 導航圖Fig.7.Navigation diagram
(3)實時定位的優(yōu)化 采用GPS定位時,由于絕大部分用戶默認不開啟GPS模塊,因此使用協(xié)助組件之間通訊的類Intent激活GPS設(shè)置界面,從而保證軟件可以獲取衛(wèi)星信號。由于采用定位監(jiān)聽器頻繁地獲取位置信息比較耗電,因此軟件采用RequestLocationUpdates方法,設(shè)置間隔20 s自動更新位置信息。
(4)顯示距離 在南極,標志性的地物不多,利用經(jīng)緯度計算當前位置與記錄位置的距離,有利于用戶定量分析是否到達目的地。軟件提供顯示距離和隱藏距離的功能,方便用戶把距離信息與圖上標記聯(lián)系起來且不影響界面的顯示效果。
本文結(jié)合南極特殊的位置特點和地理環(huán)境,設(shè)計并實現(xiàn)了南極人員定位軟件。該軟件能為南極人員在無網(wǎng)絡(luò)服務(wù)的通訊盲區(qū)提供實時定位與導航功能,為以后開發(fā)手機地圖定位軟件提供了借鑒意義。當然,軟件的建立還存在一些問題,包括:范圍過大的地圖會占用過多的手機儲存容量;首次獲取定位數(shù)據(jù)時間較長而且比較耗電;功能需要進一步完善,比如在有手機信號或者網(wǎng)絡(luò)的情況下可以傳送自己的位置等信息,以上問題有待于在實踐過程中進一步將其完善。
致謝數(shù)據(jù)由中國極地研究中心和中國南北極數(shù)據(jù)中心“極地科學數(shù)據(jù)共享平臺(http://www.chinare.org.cn)”提供,謹致謝忱。
1 溫家洪,王清華,吳健平.地里信息系統(tǒng)在南極考察和研究中的應用.極地研究,2001,13(3):217-228.
2 王剛,韓振鏢.面向Android智能移動終端的GIS設(shè)計與實現(xiàn).測繪通報,2013,(8):77-80.
3 公磊,周聰.基于Android的移動終端應用程序開發(fā)與研究.計算機與現(xiàn)代化,2008,(8):85-89.
4 劉勝前,陳立定,任志剛.基于Android移動平臺和GPS應用服務(wù)研究.信息技術(shù),2012,(1):82-85.
5 吳林,熊滔,蔡永香.基于Android手機的地圖應用設(shè)計與開發(fā).城市勘測,2011,(2):16-19.
6 ESRI.ArcGISServer Administrator and Developer Guide.California:ESRIPress,2004.
7 李沛鴻,白東強,李營營.基于Android的WebGIS地理定位服務(wù)研究.測繪通報,2013,(7):99-101.
8 Weng Y H, Sun F S, Grigsby JD.GeoTools:An android phone application in geology.Computers&Geosciences,2012,44:24-30.
9 吳泳鋒.ArcGISAPI for Android案例教程[2011-02-22].http://www.doc88.com/p-59896798582.html.
10 謝翔,荊昊,郭際明.室內(nèi)環(huán)境下手機GPS定位精度研究.測繪通報,2012,(8):95-98.