【正文】
示地圖服務器提供的柵格地圖,以這種方式呈現在用戶手機上的電子地圖為靜態(tài)的柵格圖像,不具備無級縮放等矢量地圖所具備的特性,也不能與GPS 定位或其它的定位技術結合實現定位功能,用途十分有限;單機模式是將地圖數據和軟件完整預裝到移動終端,所有操作都在移動終端完成,無需聯網。GPS。該方案通過增加一個外置藍牙GPS信號接收器獲取手機的經緯度,并將該數據發(fā)送到服務器端,服務器依據該經緯度將相應的地圖數據發(fā)送給客戶端,從而解決手機的定位和導航問題。GPS(Global Position System)與GIS(Geographic Information System)技術的融合,可為手機用戶提供定位和導航等諸多功能,應用前景十分廣闊。Mobile SVG是為適應屏幕小、性能較低的移動設備上顯示二維矢量圖形而制定的開發(fā)標準,它用文本格式的描述性語言來描述圖形內容,可以用來進行地圖數據的組織和存儲。關鍵詞:J2ME;移動GIS技術;GPS;Mobile SVG;藍牙The Design and Implementation of Mobile GPS Navigation SystemBased on J2MEABSTRACTWith the development of mobile munication technology, mobile phone has bee a set of munications, handheld mobile puting tools in one, it is conferred on the cell phone functionality has been extended to distributed puting, spatial orientation and other more advanced (Global Position System) and GIS (Geographic Information System) technology integration, mobile users can locate and navigate, and many other features, the application prospect is very broad.Mobile SVG is to fit the screen is small, less powerful mobile devices and the system shows twodimensional vector graphics set of development standards, it uses descriptive language text format to describe the graphical content, can be used for map data organization and storage. In reference to the Mobile SVG normative standards, the establishment of a document using SVG for map data organization and storage of the application model。Mobile SVG。缺點是對移動終端有很高內存和計算性能要求,數據更新不及時;C/S 模式通常由客戶端和服務端兩部分組成,客戶端軟件運行于移動終端,通過HTTP 協議或其它網絡協議向服務端發(fā)送請求,服務器端生成相應的柵格圖像后,以字節(jié)流的形式將該圖像數據發(fā)回客戶端,客戶端接收到該字節(jié)流后對其進行解析和圖像重構并最終呈現給用戶。 課題主要內容本論文通過對地理信息系統(tǒng)、J2ME平臺、無線通信技術等技術的研究與分析,針對具有藍牙功能的普通Java手機,給出了一種跨平臺的、具有定位功能的移動GIS解決方案。系統(tǒng)經過嚴格測試結果表明該系統(tǒng)有較好的可靠性和穩(wěn)定性。 論文結構安排論文首先對系統(tǒng)設計過程中所使用到的關鍵技術作簡要介紹,然后按照軟件工程的思想,詳細介紹完成手機GPS導航系統(tǒng)的流程,包括需求分析、概要設計、詳細設計、編碼實現及測試,最后對論文作簡要的總結。JAVA ME技術在1999年的JavaOne Developer Conference大會上正式推出,它將Java語言的與平臺無關的特性移植到小型電子設備上,允許移動無線設備之間共享應用程序。在J2ME中還有一個重要的概念是可選包(Optional Package),它是針對特定設備提供的類庫,比如某些設備是支持藍牙的,針對此功能J2ME中制定了JSR82(Bluetooth API)提供了對藍牙的支持。 因此我們只是列出標準,供讀者參考。以早期支持J2ME的設備為例(比如Jordan手里的那部手機,zengke的就算了),可用的 Heap不過200k,最終生成的代碼(包含各種資源文件,如圖片)不得超過64k,這就使得面向這種平臺開發(fā)的J2ME應用規(guī)?;旧喜粫^一個人的 能力范圍。 (1)CELLIDTA CELLID是小區(qū)全球識’別碼,每個蜂窩小區(qū)有一個惟一的小區(qū)識別碼。由于無線傳輸存在多徑效應,因此,利用TA定位的精度很低。 (2)ULTOA和TDOA 上行到達時間TOA定位方法與EOTD較為類似,差別在于ULTOA由基站測量終端數據的到達時間。ULTOA定位方法需要MS和參與定位的基站相互之間精確同步,而TDOA則不需要。 基于移動終端的定位技術該定位技術的原理是:多個已知位置的基站發(fā)射信號,所發(fā)射信號攜帶有與基站位置有關的特征信息,當移動終端接收到這些信號后,確定其與各基站之間的幾何位置關系,并根據相關算法對其自身位置進行定位估算,從而得到自身的位置信息。根據技術發(fā)展動態(tài),我們把重點集中于DGPS和AGPS上:(1)GPS定位技術經過多年的發(fā)展,由于其定位精度高、覆蓋范圍廣的優(yōu)點,在軍事用途中發(fā)揮著巨大的作用,近幾年開始向各個領域滲透并得到廣泛的應用。(2)采用GPS對移動臺直接定位時,首次定位需要較長的時間,這對于緊急救援的業(yè)務是不允許的。綜上所述,AGPS彌補傳統(tǒng)的GPS定位技術的缺陷,使得GPS突破定位界限實現室內GPS定位。 移動GIS的組成結構與傳統(tǒng)GIS相比,移動GIS的組成略微復雜些,因為它要求實時地將空間信息傳輸給服務器。 (3) 動態(tài)(實時)性 :作為一種應用服務系統(tǒng),應能及時地響應用戶的請求,能處理用戶環(huán)境中隨時間變化的因素的實時影響 ,在移動的過程中,不受限制地把采集到的相關信息及時處理并發(fā)布給用戶。 移動GIS的關鍵技術(1)嵌入式技術移動GIS的無線終端是一種嵌入式系統(tǒng),具有代表性的嵌入式無線終端設備包括:掌上電腦、PDA(個人數字助理)和手機等。 (3)分布式空間數據管理技術分布式空間數據庫系統(tǒng)是移動GIS體系結構中的關鍵技術之一,它是指在物理上分布、邏輯上集中的分布式結構。利用數據庫復制/緩存技術或數據廣播技術,移動用戶即使在斷接的情況下也可以訪問所需的數據,從而繼續(xù)自己的工作。該系統(tǒng)是以衛(wèi)星為基礎的無線電導航定位系統(tǒng)。 藍牙通信概述藍牙技術與時下流行的WiFi技術一樣,都是基于無線技術,只是它使用了號稱ISM(Industrial、Scientific、Medical,工業(yè)的、科學的、醫(yī)學的)頻率的波段(),在無線設備的電氣特性支持下,通過特定的通信協議棧進行通信。JSR82規(guī)范中就定義了與藍牙通信相關的API。搜索到遠程設備之后也不知道服務端可以提供哪些服務,又需要服務搜索來完成。該連接通知者對象類似于阻塞式socket服務端,它將一直等待直到接收到客戶端的連接請求。該應用框架為典型的GCF框架。如圖22所示,J2ME平臺的網絡應用最常見的是通過GPRS方式與服務器構成C/S架構。HTTP請求模式常見的有:GET、POST和HEAD。HttpConnection接口提供了getResponseCode方法獲取通信應答狀態(tài),只有在前一狀態(tài)有效時才能繼續(xù)后繼的通信。 數據存儲技術本系統(tǒng)中查詢記錄是保存在手機記錄管理系統(tǒng)(RMS)中,從服務端接收的地圖文件是先保存在手機文件系統(tǒng)中,再讀取文件并渲染到地圖界面中。記錄存儲在與平臺相關的位置(比如非易失性設備存儲器)創(chuàng)建,這些位置不直接公開給 MIDlet。記錄存儲還維護版本(version),它是一個整數,修改記錄存儲內容的操作每發(fā)生一次,這個數加一。文件系統(tǒng)可選包(JSR75規(guī)范)中定義了J2ME平臺的文件系統(tǒng)接口。XML是Internet環(huán)境中跨平臺的,依賴于內容的技術,是當前處理結構化文檔信息的有力工具。從而消耗很大的內存空間。 多線程技術 多線程概念由于在J2ME程序中訪問網絡時會花較長時間的連接遠端服務器發(fā)送請求及接收數據,為了提高程序的響應速度和程序運行效率,不致于用戶在單擊按鈕后程序不再響應用戶的其它操作,增加用戶界面的友好性易用性,引入了多線程機制。多個線程的執(zhí)行是并發(fā)的,也就是在邏輯上“同時”,而不管是否是物理上的“同時”。(3)運行:就緒的線程被調度并獲得CUp的處理邊進入了運行狀態(tài),每一個Thread類及其子類的對象都有一個重要的run()方法,當線程對象被調度執(zhí)行的時候,它將自動調用對象自身的run()方法,從第一句代碼開始執(zhí)行。 Java中多線程的兩種實現方式(1)方式一:繼承們時Thread類,覆蓋父類Thread的run()方法,如果我們要實現多線程只需要繼承該類就可以,其它方法不需要自己實現。針對方法Java提出同步機制,由synchronized關鍵字來實現,主要有兩種用法:synchronized方法(方法同步)和synchronized塊(塊同步)。Servlet是JSP的前身,在MVC架構中起到了控制中心的作用。 (2) 請求處理 對于到達服務器的客戶機請求,服務器創(chuàng)建特定于請求的一個“請求”對象和一個“響應”對象。 (3) 終止 當服務器不再需要 Servlet, 或重新裝入 Servlet 的新實例時,服務器會調用 Servlet 的 destroy() 方法。HTTP Servlet 使用一個 HTML 表格來發(fā)送和接收數據。當提交信息時,它們還指定服務器應執(zhí)行哪一個Servlet(或其它的程序)。 地圖制作軟件——Adobe IllustratorIllustrator是由美國Adobe公司開發(fā)的一款圖形繪制功能強大的平面設計軟件。具不完全統(tǒng)計全球有67%的設計師在使用Illustrator進行藝術設計!尤其基于Adobe公司專利的PostScript技術的運用,Illustrator已經完全占領專業(yè)的印刷出版領域。定位服務:現在人們的活動中有80%左右都會跟其自身所處的位置相關,并且定位功能也是GPS導航系統(tǒng)中非常重要的一項功能,如何快速、準確得到移動終端的位置并顯著的在地圖上標識出來是一個需要仔細考慮解決的問題。(2)定位服務移動終端通過藍牙協議與藍牙GPS信號接收器通訊,接收藍牙GPS信號接收器接收的衛(wèi)星導航數據,并對該數據進行解析得到當前位置的經度、緯度、海拔高度,將這些數據發(fā)送給后端的Web服務器,由Web服務器調用地圖服務器API進行重定中心運算,生成以該經度和緯度為中心的柵格圖像,并將該圖像傳到客戶端顯示,實現定位目的。(5)系統(tǒng)幫助:提供該系統(tǒng)的使用幫助信息。選擇不同業(yè)務處理響應客戶端服務。利用設計模式可方便地重用成功的設計和結構。Java開發(fā)中的23種設計模式包括:工廠模式、建造模式、工廠方法模式、原始模型模式、單例模式、適配器(變壓器)模式、橋梁模式、合成模式、裝飾模式、門面模式、享元模式、代理模式、責任鏈模式、命令模式、迭代子模式、調停者模式、備忘錄模式、觀察者模式、狀態(tài)模式、策略模式、模板方法模式、訪問者模式。狀態(tài)模式的意圖是讓一個對象在其內部狀態(tài)改變的時候,其行為也隨之改變。系統(tǒng)中每一個界面類都有初始化、出場、邏輯控制、繪制、按鍵按下、按鍵釋放、重復按鍵方法,由客戶端界面類根據系統(tǒng)當前狀態(tài)選擇對應的處理方法。 GPS數據接收及解析設計第一種解決方案:通過GPS模塊獲取當前設備經緯度數據第二種解決方案:通過外置藍牙GPS信號接收器獲取當前設備經緯度數據采用第一種解決方案需要手機支持JSR179,并且具備GPS模塊才能獲取當前設備經緯度數據,考慮到目前市場上絕大部分手機都不具備GPS模塊,所以本系統(tǒng)不采用這一方案,采用第二種解決方案,即通過外置藍牙GPS信號接收器獲取當前設備經緯度數據。獲得本地設備(LocalDevice)后,利用本地備的發(fā)現代理(DiscoveryAgent)來進行附近藍牙設備及其服務的查找。 文件系統(tǒng)訪問設計系統(tǒng)中從服務器傳送到客戶端的地圖數據是先保存到手機文件系統(tǒng)中,再從文件系統(tǒng)中讀取并渲染到用戶界面上,涉及到文件系統(tǒng)讀取及寫入操作,主要通過寫地圖文件線程和讀地圖文件線程兩個線程來完成。如果請求命令字為其他命令字,則調用其他的響應模塊。自1990年起,HTTP就已經被應用于WWW全球信息服務系統(tǒng)。采用HTTP協議做為數據傳輸協議,服務端程序可以在現有的Web服務中間件服務器上部署開發(fā),因為大多數據的Web中間件都經過嚴格測試,在其基礎上開發(fā)部署程序,可以有效提高程序的可靠性、穩(wěn)定性,無需要額外開發(fā)自己的服務器端通訊程序,在某種程序上也降低了服務端程序的開發(fā)難度,減少了工作量,加快了開發(fā)進度。按照XML標準制定的置標語言和數據交換格式已經廣為流傳,各種XML處理工具不斷出理,XML正成為Web應用環(huán)境下基礎技術。客戶端數據接收模塊接收到響應地圖數據后調用SVG地圖渲染模塊決定調用何種顯示處理,并將最終結果通過UI呈現給用戶。GPRS流量費用的增加:傳輸的數據量過大,則會增加GPRS流量費用,使用戶的支出費用增多,會使用戶對軟件產生抵觸情緒,從而不再使用該軟件。(3)系統(tǒng)模型要簡單,開發(fā)量要?。?)良好的兼容性,可