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