摘 要:隨著智能手機在人們的生活中的日益普及,基本是每個人都有屬于自己的智能手機,于是手機軟件的多樣化日漸成為了一個重要的課題。為人們的日常生活進行導航的軟件也逐漸占據(jù)了越來越重要的地位。如果研發(fā)一種具備通過百度地圖和GSP定位來繪制運動軌跡,將提高用戶手機更詳細的信息。文章詳細介紹了百度地圖的機制,并介紹了定位的實現(xiàn)。而且通過兩者的結合來繪制運動軌跡,極大地方便用戶的使用。
關鍵詞:Android;百度地圖;定位;軌跡繪制
1 引言
Android是以Linux為基礎的開放源碼操作系統(tǒng),主要用于便攜設備。作為谷歌企業(yè)戰(zhàn)略的重要組成部分,基于Android的各種移動設備已被廣大的用戶使用。因此使得基于Android平臺的開發(fā)得到了巨大的發(fā)展。
手機電子地圖不僅僅是一種將數(shù)字化技術應用到傳統(tǒng)地圖當中而產(chǎn)生的新型地圖模式,還是一種現(xiàn)代化的電子信息產(chǎn)品,其中融合了計算機技術、GIS 技術和網(wǎng)絡技術。電子地圖有效利用了 GPS 導航系統(tǒng)的定位信號,在其基礎功能上進行擴展,使得GPS 導航系統(tǒng)的功能呈現(xiàn)多樣化;此外,電子地圖將導航定位信號與周圍的地理形勢進行結合,動態(tài)并直觀地對機動車終端進行管理,達到便捷交通、方便出行的目的。
在Android系統(tǒng)的移動設備上,Google地圖和百度地圖的應用最為廣泛,對于開發(fā)者來說,百度地圖更容易實現(xiàn),然而百度開發(fā)沒有現(xiàn)成的錄制軌跡,則在運動過程中進行周期定位,繪制有型記錄點,成為一條有方向的軌跡。
2 實現(xiàn)方法
2.1 電子地圖的機制
電子地圖是包含空間位置地理坐標的數(shù)字地圖,能夠利用空間定位系統(tǒng)的電子地圖集數(shù)據(jù)集,它不但是整個系統(tǒng)與用戶的交互接口,而且將導航定位信號與周圍的地理形勢進行結合,動態(tài)并直觀地對機動車終端進行管理。
電子地圖主要分為兩個單元:圖設計單元和地圖瀏覽單元。地圖設計單元主要是對數(shù)據(jù)進行采集、處理、存儲以及管理,而電子瀏覽單元主要讓用戶能操作電子地圖并使用電子地圖的各個功能模塊,該單元不僅能讓用戶瀏覽靜態(tài)的電子地圖,還能讓用戶了解基于電子地圖的動態(tài)變化信息。
2.2 電子地圖的實現(xiàn)
電子地圖是直接源碼編譯非常困難,可以通過調用百度地圖API來實現(xiàn)。通過百度地圖API導入到項目中,繼承API中的MapActivity基類并且把地圖配置處相關處理代碼放在基類中,然后在實現(xiàn)此基類的子類中專心實現(xiàn)業(yè)務的相關邏輯。
實現(xiàn)地圖的核心代碼如下:
mapView= (MapView)findViewById(R.id.bmapView);
bMapManager=new BMapManager(MainActivity.this);
bMapManager.init(keyString, new MKGeneralListener() {
public void onGetPermissionState(int arg0) {
if(arg0==300){Toast.makeText(MainActivity.this, \"輸入的Key有誤!請核實!!\", 0).show();}}
public void onGetNetworkState(int arg0){}
});
this.initMapActivity(bMapManager);
,,,,
2.3 GPS定位原理
GPS定位的基本原理是根據(jù)高速運動的衛(wèi)星瞬間位置作為已知的起算數(shù)據(jù),采用空間距離后方交會的方法,確定待測點的位置。如圖所示,假設t時刻在地面待測點上安置GPS接收機,可以測定GPS信號到達接收機的時間△t,再加上接收機所接收到的衛(wèi)星星歷等其它數(shù)據(jù)可以確定以下四個方程式:
上述四個方程式中待測點坐標x、y、z和Vto為未知參數(shù),其中
di=c△ti (i=1、2、3、4)。
di (i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4到接收機之間的距離。
△ti (i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4的信號到達接收機所經(jīng)歷的時間。
c為GPS信號的傳播速度(即光速)。四個方程式中各個參數(shù)意義如下:
x、y、z 為待測點坐標的空間直角坐標。
xi、yi、zi (i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4在t時刻的空間直角坐標, 可由衛(wèi)星導航電文求得。
Vti(i=1、2、3、4)分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4的衛(wèi)星鐘的鐘差,由衛(wèi)星星歷提供。
Vto為接收機的鐘差。
由以上四個方程即可解算出待測點的坐標x、y、z和接收機的鐘差Vto 。
2.3 運動軌跡的實現(xiàn)與繪制
軌跡的繪制首先在定位的基礎上實現(xiàn),機理在于短周期內的自動繪制記錄點,將這個點按順序連起來形成以來有方向的線,實現(xiàn)步驟如下:
(1)開啟百度地圖。(2)開始定位。(3)時時更新地圖,將定位點記錄下來。(4)將記錄點繪制成一條曲線。
核心代碼如下:
public void start(){
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true);
option.setAddrType(\"detail\");
option.setCoorType(\"gcj02\");
option.setScanSpan(3000);
option.disableCache(true);// 禁止啟用緩存定位
mLocationClient.setLocOption(option);
if (!mLocationClient.isStarted())
{ mLocationClient.start();}
return;
}
3 測試結果
3.1 地圖顯示測試
(1)開啟手機移動網(wǎng)絡或WIFI。(2)運行開發(fā)的地圖應用。(3)顯示地圖,效果如圖1。
4 結束語
至今為止,Android手機操作系統(tǒng)已經(jīng)成為市場占有率第一的智能手機系統(tǒng),學習和掌握Android平臺手機相關應用的開發(fā)對人們有非常重要的意義。文章以基于Android平臺的的手機地圖開發(fā),使用GPS位置定位技術和百度地圖提供的相關接口將移動設備運動軌跡的繪制的設計與實現(xiàn)。
參考文獻
[1]帥冬冬.基于android手機的電子地圖的應用開發(fā)[D].南京郵電大學,2013.
[2]謝思健,董懿,楊昱 .智能手機通過甩動完成資料快速傳遞方法的研究與實現(xiàn)[J].科技創(chuàng)新與應用,2013,18:70-71.
[3]趙士田.基于Android平臺的運動輔助軟件的設計與實現(xiàn)[D].山東大學,2011.
[4]馮越.Android操作系統(tǒng)的安全性研究[J].金融科技時代,2012,06:101-103.
[5]公磊.基于Android的GPS測量系統(tǒng)開發(fā)[D].南昌大學,2008.
作者簡介:林志偉(1993-),男,寧波大紅鷹學院信息工程學院,研究方向:軟件開發(fā)。
楊昱 (1969-),男,副教授,研究方向:軟件開發(fā),文本檢索。