孟文超,張寧
(重慶郵電大學(xué) 通信與信息工程學(xué)院, 重慶400065)
?
基于Android平臺移動(dòng)導(dǎo)航定位的研究與設(shè)計(jì)
孟文超,張寧
(重慶郵電大學(xué) 通信與信息工程學(xué)院, 重慶400065)
隨著無線網(wǎng)絡(luò)技術(shù)的發(fā)展和Android平臺移動(dòng)智能終端的普及,各具特色的基于位置的服務(wù)應(yīng)用接踵而至。由于全球定位系統(tǒng)GPS應(yīng)用領(lǐng)域的不斷延伸和擴(kuò)展,傳統(tǒng)的LBS僅限于單方位置信息呈現(xiàn),已不能滿足人們?nèi)找嬖鲩L的社交網(wǎng)絡(luò)需求,實(shí)現(xiàn)移動(dòng)導(dǎo)航定位具有現(xiàn)實(shí)的意義,開發(fā)基于Android平臺的LBS具有巨大潛力。本文提出一種新的LBS應(yīng)用場景——移動(dòng)導(dǎo)航定位,并結(jié)合Android平臺應(yīng)用程序開發(fā)的特點(diǎn)及結(jié)合百度Map API,借簽C/S軟件設(shè)計(jì)模式設(shè)計(jì)一款方便實(shí)用的移動(dòng)導(dǎo)航定位應(yīng)用系統(tǒng)。
Android平臺; LBS;Map API; 移動(dòng)導(dǎo)航定位
當(dāng)前基于位置服務(wù)的發(fā)展方向正趨向于個(gè)性化和本地化,不同的人群對基于位置的服務(wù)的功能和性能等方面都有不同的需求[2]。目前提供導(dǎo)航服務(wù)的系統(tǒng)只是人與物或者物與物之間的導(dǎo)航,對于日常生活中兩個(gè)或者多個(gè)好友在一個(gè)陌生的城市,因?yàn)椴皇煜け舜苏也坏交蛘呷菀鬃咤e(cuò)路導(dǎo)致不能見面,以及動(dòng)態(tài)了解物流動(dòng)態(tài)所在的位置的相關(guān)軟件還沒有出現(xiàn),本文基于Android平臺結(jié)合百度Map API相關(guān)功能設(shè)計(jì)實(shí)現(xiàn)一款移動(dòng)導(dǎo)航定位服務(wù)系統(tǒng),從而為用戶提供功能更加方便、界面更加友好的移動(dòng)導(dǎo)航定位服務(wù)[3]。
本文采用典型的C/S設(shè)計(jì)模式即客戶端和服務(wù)器結(jié)構(gòu),提出了一種更輕巧、簡便的系統(tǒng)設(shè)計(jì)方案,如圖1所示??蛻舳税惭b相應(yīng)的應(yīng)用軟件,遠(yuǎn)程服務(wù)器存儲(chǔ)數(shù)據(jù),客戶端向服務(wù)器請求服務(wù),服務(wù)器向客戶端提供服務(wù)。以電子地圖為基礎(chǔ),集成用戶位置需求,綜合利用無線通信網(wǎng)絡(luò)(TD-SCDMA/LTE)、有線網(wǎng)絡(luò)的優(yōu)勢,實(shí)現(xiàn)多方用戶移動(dòng)導(dǎo)航定位。
圖1 系統(tǒng)設(shè)計(jì)圖
利用百度Map API技術(shù)構(gòu)建位置服務(wù)系統(tǒng),通過采用服務(wù)器、數(shù)據(jù)服務(wù)器、客戶端三層結(jié)構(gòu)來設(shè)計(jì)??蛻舳酥饕獙?shí)現(xiàn)的功能包括地圖基本功能操作,包括加載地圖、瀏覽地圖、地圖縮放、POI查詢及移動(dòng)導(dǎo)航定位地圖顯示。服務(wù)器用主要于處理客戶端注冊、驗(yàn)證登陸、服務(wù)查詢請求并響應(yīng),利用Map API將移動(dòng)位置地理信息顯示地圖上。數(shù)據(jù)服務(wù)器主要被服務(wù)器存取用戶信息和各種空間數(shù)據(jù)。該系統(tǒng)運(yùn)行穩(wěn)定,成本低,具有理論的可行性和實(shí)際的可用性。
2.1 Android平臺及應(yīng)用開發(fā)
Android是一個(gè)由Linux+Java構(gòu)成的移動(dòng)設(shè)備軟件框架,它包括一個(gè)操作系統(tǒng)、中間件和一些關(guān)鍵應(yīng)用。采用了分層的架構(gòu),如圖2所示。從架構(gòu)圖看,Android分為4層,分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和Linux核心層,具有平臺標(biāo)準(zhǔn)化、用戶可定制以及服務(wù)免費(fèi)等特色[4]。
圖2 Android平臺結(jié)構(gòu)圖
Android程序的載體是各個(gè)應(yīng)用程序包,而程序運(yùn)行的主體是各種“組件”。從應(yīng)用程序的角度,各個(gè)組件對外的聯(lián)系是程序處理的一個(gè)關(guān)鍵問題[5],組件接口包括與用戶的接口和與其他包的接口兩部分內(nèi)容。Android 的應(yīng)用程序是用 Java 語言開發(fā)的,其編程語言完全開源免費(fèi),基于此平臺,對此系統(tǒng)進(jìn)行開發(fā)設(shè)計(jì)。
2.2 GPS定位技術(shù)
現(xiàn)代教學(xué)模式逐漸向著開放化、綜合性方面發(fā)展.高中物理教學(xué)也在不斷的變革中探索,努力尋找適合現(xiàn)代教學(xué)模式的節(jié)奏和方式,給學(xué)生帶來更加全面的發(fā)展.應(yīng)當(dāng)發(fā)現(xiàn),學(xué)生的學(xué)習(xí)習(xí)慣和思維習(xí)慣很大程度上受到原始教學(xué)方法的影響,盡管填鴨式的教學(xué)模式限制了學(xué)生思維的拓展,但能夠保證傳統(tǒng)意義上的教學(xué)質(zhì)量,側(cè)面也體現(xiàn)了教師的教學(xué)水平.目前情況來看,新時(shí)代下學(xué)生的智力水平較往年有較大的提高,傳統(tǒng)方式無法滿足學(xué)生的需求,他們渴望自由的教學(xué)模式和寬松的學(xué)習(xí)環(huán)境.本文將從“對分課堂”在物理教學(xué)實(shí)施中的現(xiàn)狀出發(fā),簡述高中物理“對分課堂”實(shí)施的具體方法,發(fā)現(xiàn)問題并提出解決問題的方法,探索促進(jìn)高中物理“對分課堂”更加有效的方法.
移動(dòng)終端的定位是通過檢測移動(dòng)終端和基站之間傳播信號的特征參數(shù)來獲取幾何位置,再根據(jù)移動(dòng)終端定位進(jìn)行定位估計(jì)位置。GPS全球定位系統(tǒng)是由美國國防部在20世紀(jì)70年代開始聯(lián)合研制的新型衛(wèi)星導(dǎo)航系統(tǒng)[6],由 24 顆定位衛(wèi)星組成,所有衛(wèi)星分布比較獨(dú)特,軌道高,兼具測時(shí)和測距的功能。GPS 全球定位系統(tǒng)實(shí)現(xiàn)了全球覆蓋,各種氣象條件下的全天候工作,定位精度高,定位導(dǎo)航可實(shí)時(shí)連續(xù)。定位衛(wèi)星的這種分布便于需要導(dǎo)航的設(shè)備在全球的任意地點(diǎn)、任意時(shí)間都可同時(shí)觀測到4顆以上的通信衛(wèi)星,并能保持良好的定位解算精度。今天的智能手機(jī)平臺大多都配備了全功能的 GPS 接收機(jī)及配套應(yīng)用,根據(jù)高速運(yùn)動(dòng)的衛(wèi)星瞬間位置作為已知的數(shù)據(jù),采用空間距離后方交會(huì)的方法,確定待測點(diǎn)的準(zhǔn)確位置。
2.3 百度地圖API
圖3 地圖定位原理圖
百度地圖API針對移動(dòng)終端特別開發(fā)出百度地圖移動(dòng)版API,百度移動(dòng)地圖API是基于移動(dòng)互聯(lián)網(wǎng)設(shè)備的應(yīng)用程序接口,支持Android平臺。與此同時(shí),移動(dòng)地圖免費(fèi)對外開放地圖SDK和定位SDK API,若需要在同一個(gè)工程中同時(shí)使用地圖SDK和定位SDK,需先申請同一個(gè)key,接口使用無次數(shù)限制。
地圖SDK是一套基于Android平臺的應(yīng)用程序接口,可以使用該套 SDK開發(fā)適用于Android系統(tǒng)移動(dòng)設(shè)備的地圖應(yīng)用,通過調(diào)用地圖SDK接口,可以輕松訪問百度移動(dòng)地圖服務(wù)和數(shù)據(jù),構(gòu)建功能豐富、交互性強(qiáng)的地圖類應(yīng)用程序。同時(shí)百度移動(dòng)地圖定位SDK是一個(gè)提供基礎(chǔ)定位API的第三方平臺,為各類應(yīng)用提供定位能力,提升用戶體驗(yàn)。通過移動(dòng)地圖API,用戶可以再移動(dòng)終端上便捷、輕松、準(zhǔn)確地訪問百度地圖服務(wù)和數(shù)據(jù)。地圖定位原理如圖3所示。
百度移動(dòng)地圖采用GPS、基站、Wi-Fi信號進(jìn)行定位。當(dāng)應(yīng)用程序向SDK發(fā)起服務(wù)請求時(shí),SDK會(huì)根據(jù)應(yīng)用的客觀因素(GPS、基站、Wi-Fi信號)的實(shí)際情況(如是否開啟GPS、是否連接網(wǎng)絡(luò)、是否有信號等)來生成相應(yīng)地理信息依據(jù)進(jìn)行響應(yīng)。
本文的研究目的是實(shí)現(xiàn)好友共享地理信息的移動(dòng)導(dǎo)航定位系統(tǒng),通過后臺的推送服務(wù),更新并發(fā)送給其好友,并在客戶端上通過百度Map上顯示出來。只要用一個(gè)賬號和密碼登陸,使用者就匹配數(shù)據(jù)庫相關(guān)數(shù)據(jù)就可以加載好友列表,并進(jìn)行位置共享進(jìn)而實(shí)現(xiàn)移動(dòng)導(dǎo)航功能,系統(tǒng)整體功能架構(gòu)如圖4所示。
圖4 系統(tǒng)功能架構(gòu)圖
3.1 客戶端功能設(shè)計(jì)
圖5 客戶端設(shè)計(jì)架構(gòu)圖
系統(tǒng)客戶端模塊包括數(shù)據(jù)接收模塊、登錄模塊、注冊模塊、定位模塊和移動(dòng)導(dǎo)航模塊,客戶端設(shè)計(jì)架構(gòu)圖如圖5所示。代碼實(shí)現(xiàn)語言采用Java,IDE是Eclipse,數(shù)據(jù)庫是MySQL,Android開發(fā)工具是android-sdk-windows。
當(dāng)用戶登錄客戶端經(jīng)過GPS模塊接收位置信息模塊,并存儲(chǔ)在數(shù)據(jù)庫里,通過DataProcess處理線程進(jìn)行處理,最后通過DataProcess發(fā)送廣播給UI界面Activity,Activity根據(jù)當(dāng)前的狀態(tài)判斷是否要馬上更新地圖信息。
在客戶端,圖層顯示包括地圖靜態(tài)圖層、Poi圖層、天氣圖層、移動(dòng)導(dǎo)航圖層。地圖圖層是展示的是平面地理信息圖層;POI圖層展示的是興趣點(diǎn)搜索結(jié)果信息圖層;移動(dòng)導(dǎo)航圖層展示的是當(dāng)前在線所有允許分享位置好友經(jīng)緯度位置信息及最優(yōu)路徑。
3.2 服務(wù)器功能設(shè)計(jì)
服務(wù)器負(fù)責(zé)接受用戶的登陸、注冊請求,并推送好友相關(guān)的信息,其主要功能包括用戶上線處理、下線處理、更新地理位置信息、獲取位置信息天氣、用戶會(huì)話、好友移動(dòng)導(dǎo)航、添加好友,刪除好友等功能。
用戶上線處理:用戶請求登錄,得到用戶所有信息,并讓所有在線好友得到上線通知。
更新地理位置信息:當(dāng)前用戶的地理位置信息發(fā)生改變時(shí),通過終端GPS獲取當(dāng)前位置信息,并通過地圖數(shù)據(jù)庫實(shí)時(shí)顯示在地圖上。
好友移動(dòng)導(dǎo)航:將允許可見實(shí)時(shí)在線用戶信息的當(dāng)前位置經(jīng)緯度按照“用戶賬號—位置經(jīng)緯度”一對一結(jié)構(gòu)格式返回至客戶端地圖上,并根據(jù)路徑規(guī)劃算法實(shí)時(shí)移動(dòng)導(dǎo)航。
添加好友:根據(jù)用戶賬號發(fā)送好友請求時(shí),同意為好友則顯示在對方好友列表里,可以進(jìn)行會(huì)話和移動(dòng)導(dǎo)航。
刪除好友:用戶選擇刪除好友后,該好友馬上在我的好友列表上消失,會(huì)話和移動(dòng)導(dǎo)航功能同時(shí)刪除。
3.3 數(shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫設(shè)計(jì)是指在給定的應(yīng)用環(huán)境下提供最優(yōu)的數(shù)據(jù)模型,采用基于邏輯設(shè)計(jì)與物理設(shè)計(jì)相結(jié)合的方式抽象應(yīng)用和數(shù)據(jù),從而建立數(shù)據(jù)庫應(yīng)用系統(tǒng),有效地存儲(chǔ)相關(guān)數(shù)據(jù),滿足用戶的應(yīng)用實(shí)際需求。由于MySQL支持開源、多用戶、多線程以及成本低、速度快、體積小等優(yōu)勢,而移動(dòng)導(dǎo)航定位系統(tǒng)應(yīng)為實(shí)時(shí)性要求高,故本系統(tǒng)采用MySQL數(shù)據(jù)庫系統(tǒng)。
該系統(tǒng)的數(shù)據(jù)庫主要是為了用戶信息以及相應(yīng)地理位置信息,包括登錄用戶賬號、用戶名、登陸密碼,經(jīng)緯度等,在用戶信息表中存儲(chǔ)信息如表1所列。
在無線通信網(wǎng)絡(luò)或Wi-Fi環(huán)境下利用Android平臺的智能終端GPS模塊獲取地理信息,在Android SDK2.3模擬器下完成主要功能功能性測試。登錄界面如圖6所示,定位界面如圖7所示,移動(dòng)導(dǎo)航界面如圖8所示,經(jīng)分析,用戶登錄驗(yàn)證、定位功能、移動(dòng)導(dǎo)航定位等功能均滿足預(yù)期設(shè)計(jì)。
表1 用戶信息表
圖6 登錄界面
圖7 定位界面
圖8 移動(dòng)導(dǎo)航界面
[1] 王明才,姚承寬.位置服務(wù)在我國的應(yīng)用和發(fā)展[J].河北師范大學(xué)學(xué)報(bào),2009, 33(5):688-692.
[2] 潘可賢.手機(jī)個(gè)人位置服務(wù)LBS業(yè)務(wù)的應(yīng)用開發(fā)[J].信息技術(shù),2009(10):133-137.
[3] Mark L Murphy. The Busy Coder’s Guide to Android Development[M]. Commons Ware: LLC ,2008.
[4] 楊豐盛. Android 應(yīng)用開發(fā)揭秘[M]. 北京:機(jī)械工業(yè)出版社, 2010.
[5] http://developer.android.comlindex.html.
[6] 崔和宏.移動(dòng)定位技術(shù)概述[J].科技信息,2008(20):402,356.
孟文超(碩士研究生),主要研究方向?yàn)榍度胧较到y(tǒng)應(yīng)用開發(fā)、移動(dòng)通信協(xié)議開發(fā);張寧(碩士研究生),主要研究方向?yàn)橐苿?dòng)通信協(xié)議開發(fā)。
(責(zé)任編輯:高珍 收修改稿日期:2013-12-24)
Mobile Navigation and Positioning Applications Based on Android Mobile Terminal
Meng Wenchao, Zhang Ning
(School of Information and Communication Engineering, Chongqing University of Posts and Telecommunication, Chongqing 400065, China)
With the popularization of intelligent Android mobile terminals and the development of wireless network technology, the characteristic Location-Based Services (LBS) applications followed. Due to the rapid extension of GPS application domain, the traditional LBS limited to unilateral location information presentation could not meet the growing demand for social network. The mobile navigation and positioning has important practical significance. It has a big potential to develop the application of GPS based on Android. This paper presents a new application scenarios on LBS combined with the characteristics of the Android platform application development and Baidu Map API, making use of the C/S software design pattern to design practical and convenient mobile navigation positioning application system.
Android platform; LBS; Map API; navigation and positioning
TP311.1
A