孟文超,張寧
(重慶郵電大學 通信與信息工程學院, 重慶400065)
?
基于Android平臺移動導航定位的研究與設計
孟文超,張寧
(重慶郵電大學 通信與信息工程學院, 重慶400065)
隨著無線網絡技術的發展和Android平臺移動智能終端的普及,各具特色的基于位置的服務應用接踵而至。由于全球定位系統GPS應用領域的不斷延伸和擴展,傳統的LBS僅限于單方位置信息呈現,已不能滿足人們日益增長的社交網絡需求,實現移動導航定位具有現實的意義,開發基于Android平臺的LBS具有巨大潛力。本文提出一種新的LBS應用場景——移動導航定位,并結合Android平臺應用程序開發的特點及結合百度Map API,借簽C/S軟件設計模式設計一款方便實用的移動導航定位應用系統。
Android平臺; LBS;Map API; 移動導航定位
當前基于位置服務的發展方向正趨向于個性化和本地化,不同的人群對基于位置的服務的功能和性能等方面都有不同的需求[2]。目前提供導航服務的系統只是人與物或者物與物之間的導航,對于日常生活中兩個或者多個好友在一個陌生的城市,因為不熟悉彼此找不到或者容易走錯路導致不能見面,以及動態了解物流動態所在的位置的相關軟件還沒有出現,本文基于Android平臺結合百度Map API相關功能設計實現一款移動導航定位服務系統,從而為用戶提供功能更加方便、界面更加友好的移動導航定位服務[3]。
本文采用典型的C/S設計模式即客戶端和服務器結構,提出了一種更輕巧、簡便的系統設計方案,如圖1所示。客戶端安裝相應的應用軟件,遠程服務器存儲數據,客戶端向服務器請求服務,服務器向客戶端提供服務。以電子地圖為基礎,集成用戶位置需求,綜合利用無線通信網絡(TD-SCDMA/LTE)、有線網絡的優勢,實現多方用戶移動導航定位。

圖1 系統設計圖
利用百度Map API技術構建位置服務系統,通過采用服務器、數據服務器、客戶端三層結構來設計。客戶端主要實現的功能包括地圖基本功能操作,包括加載地圖、瀏覽地圖、地圖縮放、POI查詢及移動導航定位地圖顯示。服務器用主要于處理客戶端注冊、驗證登陸、服務查詢請求并響應,利用Map API將移動位置地理信息顯示地圖上。數據服務器主要被服務器存取用戶信息和各種空間數據。該系統運行穩定,成本低,具有理論的可行性和實際的可用性。
2.1 Android平臺及應用開發
Android是一個由Linux+Java構成的移動設備軟件框架,它包括一個操作系統、中間件和一些關鍵應用。采用了分層的架構,如圖2所示。從架構圖看,Android分為4層,分別是應用程序層、應用程序框架層、系統運行庫層和Linux核心層,具有平臺標準化、用戶可定制以及服務免費等特色[4]。

圖2 Android平臺結構圖
Android程序的載體是各個應用程序包,而程序運行的主體是各種“組件”。從應用程序的角度,各個組件對外的聯系是程序處理的一個關鍵問題[5],組件接口包括與用戶的接口和與其他包的接口兩部分內容。Android 的應用程序是用 Java 語言開發的,其編程語言完全開源免費,基于此平臺,對此系統進行開發設計。
2.2 GPS定位技術
現代教學模式逐漸向著開放化、綜合性方面發展.高中物理教學也在不斷的變革中探索,努力尋找適合現代教學模式的節奏和方式,給學生帶來更加全面的發展.應當發現,學生的學習習慣和思維習慣很大程度上受到原始教學方法的影響,盡管填鴨式的教學模式限制了學生思維的拓展,但能夠保證傳統意義上的教學質量,側面也體現了教師的教學水平.目前情況來看,新時代下學生的智力水平較往年有較大的提高,傳統方式無法滿足學生的需求,他們渴望自由的教學模式和寬松的學習環境.本文將從“對分課堂”在物理教學實施中的現狀出發,簡述高中物理“對分課堂”實施的具體方法,發現問題并提出解決問題的方法,探索促進高中物理“對分課堂”更加有效的方法.
移動終端的定位是通過檢測移動終端和基站之間傳播信號的特征參數來獲取幾何位置,再根據移動終端定位進行定位估計位置。GPS全球定位系統是由美國國防部在20世紀70年代開始聯合研制的新型衛星導航系統[6],由 24 顆定位衛星組成,所有衛星分布比較獨特,軌道高,兼具測時和測距的功能。GPS 全球定位系統實現了全球覆蓋,各種氣象條件下的全天候工作,定位精度高,定位導航可實時連續。定位衛星的這種分布便于需要導航的設備在全球的任意地點、任意時間都可同時觀測到4顆以上的通信衛星,并能保持良好的定位解算精度。今天的智能手機平臺大多都配備了全功能的 GPS 接收機及配套應用,根據高速運動的衛星瞬間位置作為已知的數據,采用空間距離后方交會的方法,確定待測點的準確位置。
2.3 百度地圖API

圖3 地圖定位原理圖
百度地圖API針對移動終端特別開發出百度地圖移動版API,百度移動地圖API是基于移動互聯網設備的應用程序接口,支持Android平臺。與此同時,移動地圖免費對外開放地圖SDK和定位SDK API,若需要在同一個工程中同時使用地圖SDK和定位SDK,需先申請同一個key,接口使用無次數限制。
地圖SDK是一套基于Android平臺的應用程序接口,可以使用該套 SDK開發適用于Android系統移動設備的地圖應用,通過調用地圖SDK接口,可以輕松訪問百度移動地圖服務和數據,構建功能豐富、交互性強的地圖類應用程序。同時百度移動地圖定位SDK是一個提供基礎定位API的第三方平臺,為各類應用提供定位能力,提升用戶體驗。通過移動地圖API,用戶可以再移動終端上便捷、輕松、準確地訪問百度地圖服務和數據。地圖定位原理如圖3所示。
百度移動地圖采用GPS、基站、Wi-Fi信號進行定位。當應用程序向SDK發起服務請求時,SDK會根據應用的客觀因素(GPS、基站、Wi-Fi信號)的實際情況(如是否開啟GPS、是否連接網絡、是否有信號等)來生成相應地理信息依據進行響應。
本文的研究目的是實現好友共享地理信息的移動導航定位系統,通過后臺的推送服務,更新并發送給其好友,并在客戶端上通過百度Map上顯示出來。只要用一個賬號和密碼登陸,使用者就匹配數據庫相關數據就可以加載好友列表,并進行位置共享進而實現移動導航功能,系統整體功能架構如圖4所示。

圖4 系統功能架構圖
3.1 客戶端功能設計

圖5 客戶端設計架構圖
系統客戶端模塊包括數據接收模塊、登錄模塊、注冊模塊、定位模塊和移動導航模塊,客戶端設計架構圖如圖5所示。代碼實現語言采用Java,IDE是Eclipse,數據庫是MySQL,Android開發工具是android-sdk-windows。
當用戶登錄客戶端經過GPS模塊接收位置信息模塊,并存儲在數據庫里,通過DataProcess處理線程進行處理,最后通過DataProcess發送廣播給UI界面Activity,Activity根據當前的狀態判斷是否要馬上更新地圖信息。
在客戶端,圖層顯示包括地圖靜態圖層、Poi圖層、天氣圖層、移動導航圖層。地圖圖層是展示的是平面地理信息圖層;POI圖層展示的是興趣點搜索結果信息圖層;移動導航圖層展示的是當前在線所有允許分享位置好友經緯度位置信息及最優路徑。
3.2 服務器功能設計
服務器負責接受用戶的登陸、注冊請求,并推送好友相關的信息,其主要功能包括用戶上線處理、下線處理、更新地理位置信息、獲取位置信息天氣、用戶會話、好友移動導航、添加好友,刪除好友等功能。
用戶上線處理:用戶請求登錄,得到用戶所有信息,并讓所有在線好友得到上線通知。
更新地理位置信息:當前用戶的地理位置信息發生改變時,通過終端GPS獲取當前位置信息,并通過地圖數據庫實時顯示在地圖上。
好友移動導航:將允許可見實時在線用戶信息的當前位置經緯度按照“用戶賬號—位置經緯度”一對一結構格式返回至客戶端地圖上,并根據路徑規劃算法實時移動導航。
添加好友:根據用戶賬號發送好友請求時,同意為好友則顯示在對方好友列表里,可以進行會話和移動導航。
刪除好友:用戶選擇刪除好友后,該好友馬上在我的好友列表上消失,會話和移動導航功能同時刪除。
3.3 數據庫設計
數據庫設計是指在給定的應用環境下提供最優的數據模型,采用基于邏輯設計與物理設計相結合的方式抽象應用和數據,從而建立數據庫應用系統,有效地存儲相關數據,滿足用戶的應用實際需求。由于MySQL支持開源、多用戶、多線程以及成本低、速度快、體積小等優勢,而移動導航定位系統應為實時性要求高,故本系統采用MySQL數據庫系統。
該系統的數據庫主要是為了用戶信息以及相應地理位置信息,包括登錄用戶賬號、用戶名、登陸密碼,經緯度等,在用戶信息表中存儲信息如表1所列。
在無線通信網絡或Wi-Fi環境下利用Android平臺的智能終端GPS模塊獲取地理信息,在Android SDK2.3模擬器下完成主要功能功能性測試。登錄界面如圖6所示,定位界面如圖7所示,移動導航界面如圖8所示,經分析,用戶登錄驗證、定位功能、移動導航定位等功能均滿足預期設計。

表1 用戶信息表

圖6 登錄界面

圖7 定位界面

圖8 移動導航界面

[1] 王明才,姚承寬.位置服務在我國的應用和發展[J].河北師范大學學報,2009, 33(5):688-692.
[2] 潘可賢.手機個人位置服務LBS業務的應用開發[J].信息技術,2009(10):133-137.
[3] Mark L Murphy. The Busy Coder’s Guide to Android Development[M]. Commons Ware: LLC ,2008.
[4] 楊豐盛. Android 應用開發揭秘[M]. 北京:機械工業出版社, 2010.
[5] http://developer.android.comlindex.html.
[6] 崔和宏.移動定位技術概述[J].科技信息,2008(20):402,356.
孟文超(碩士研究生),主要研究方向為嵌入式系統應用開發、移動通信協議開發;張寧(碩士研究生),主要研究方向為移動通信協議開發。
(責任編輯:高珍 收修改稿日期: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