隨著移動通信技術、移動計算技術的發(fā)展,手機已不再僅僅以移動通話工具而存在,用戶對手機的附加服務提出了更高的要求,而手機地圖服務便是這些附加服務中一項有著廣闊應用空間的服務。
J2ME(Java 2 Plat form Micro Edition,)是為無線電子市場所設計的又被稱為Java 2 微型版,是Java 2 標準中專門針對小型移動設備的一個版本。而Mobile SVG 是專門為存儲空間、電池容量和網絡帶寬有限的移動設備而設計的2D 矢量圖形格式,是SVG 的子集。
面向手機的地圖服務是基于位置的服務(Location Based Services, LBS)的重要組成部分,是空間信息技術、移動通信技術、移動計算技術等相結合的產物。作為一種新興的服務,它的特點是移動性、手機的多樣性、客戶端的"極瘦"與服務器端的"極胖"、有限的帶寬。
在設計和實現(xiàn)手機地圖服務時需要對其特點進行充分的考慮。而選擇合適的地圖格式和服務的實現(xiàn)技術成為系統(tǒng)構建的首要因素。
一、J2ME 技術的選擇
手機存儲能力有限而且不能像掌上電腦一樣利用Flash 卡存儲信息,因此電子地圖主要通過網絡下載實時獲取。手機地圖服務的方式以現(xiàn)有技術從服務模式上可分為短信服務和手機上網服務兩種。
1. 短信服務模式
短信服務模式主要以SMS 以及新近開始應用的MMS 為主。SMS(Short Messag ing Service)是一種在移動網絡上傳輸簡短消息的無線應用,是一種有限長度文本在移動網絡上存儲和轉寄的過程。
SMS 使用簡單方便,應用非常普及,但在內容和應用方面存在技術標準的限制,只能提供文字信息,而且文字的長度有限。對于地圖服務而言,用簡短的文字信息很難滿足用戶的需求。
MMS(Mult imedia Messag ing Service)以WAP無線應用協(xié)議為載體傳送視頻片段、圖片、聲音和文字。MMS 不像WAP 技術的Browser 方式需要龐大而復雜的網關,實現(xiàn)手段也相對簡單,對客戶端也沒有太高的要求,而且應用較為廣泛。但對于手機用戶來說,它只發(fā)送圖形數據,用戶不能有太多的操作能力。目前MMS 所支持的圖片格式多為柵格格式,放大時會得到模糊、有棱角的圖像,而且柵格格式地圖的數據量較大,不利于無線傳輸和移動計算。
隨著MMS 對矢量圖形格式的支持,它將是提供手機地圖服務的一種較好的方法。
此外,不論是SMS 還是MMS, 其服務的實現(xiàn)都需要在提供服務的一端建立相應的網關系統(tǒng)和數據發(fā)送接收設備,加大了服務實現(xiàn)的難度和系統(tǒng)成本。
2. 手機上網服務模式
WAP Browser, I-mode, J2ME 等是目前手機上網服務模式實現(xiàn)的熱點。通過WAP 技術,手機用戶幾乎可以在任何地方、時間獲得網絡提供的服務。
然而基于WAP 技術的Browser 方式訪問Internet存在著一定的缺陷:①不能直接訪問Internet , 需要龐大的Gateway 過濾;②只能顯示WML, 不能顯示復雜格式圖形;③ 在線交易增加服務器負荷,速度慢;④ 不能訪問本地存儲區(qū)。
I-MODE(information-mode)是由日本NTTDoCoMo 公司開發(fā)的一種無線通信技術標準,借助I-MODE 可以實現(xiàn)計算機、PDA 以及其他兼容手機之間的I-MODE 數據交換。I-MODE 主要應用在日本。
與MMS 相比,J2ME 對手機要求相對高一些。
MMS 適合點對點應用以及信息點播服務,J2ME 則以開發(fā)交互式業(yè)務為主。J2ME 提供了HTTP 高級Internet 協(xié)議,使手機能以Client / Server 方式直接訪問Internet 的全部信息,而且還能訪問本地存儲區(qū),提供最高效率的在線交易,如手機已經存有地圖則不必在向服務器申請地圖數據,應用程序直接訪問存于手機中的數據進行計算,有效減少了數據傳輸量。此外有越來越多的手機支持J2ME, 有利與服務的大眾化。J2ME 與WAP Brow ser 方式和MMS 相比較有以下優(yōu)點:①直接訪問Internet 全部信息;②不同的Client 訪問各種各樣的文件;③最高效率的在線交易;④ 訪問本地存儲區(qū),提高效率;⑤客戶端程序可實時下載至本地執(zhí)行。
根據以上分析,MMS 對手機較低的要求、相對成熟的技術及廣泛的應用,而J2ME 直接訪問In??
ternet 以及高效的本地訪問都為手機地圖服務提供了較好的方法。本文主要討論基于J2ME 的Client方式訪問Internet 上的地圖服務器獲取地圖服務。
二、基于Mobile SVG的地圖圖形數據
地理數據有著復雜的數據結構,解決手機地圖服務,首先要解決地理數據如何進行組織和編碼。
Mobile SVG 是SVG 的子集,它包括SVG Tiny和SVG Basic.SVG Tiny 適于存儲和計算能力有限的低端設備,SVG Basic 適于存儲和計算能力限制較小的高端設備。在手機地圖服務中應用有著其他圖形格式不可比擬的優(yōu)越性。與其他圖形格式相比有以下優(yōu)點: 動態(tài)性與可放縮性、較小的體積、可存儲圖像信息、平臺獨立性、開放的標準。
SVG Tiny 和SVG Basic 都支持標準SVG 中定義的基本圖形。然而移動SVG 是針對移動設備制定的,它對SVG 又有所精簡,如SVG Tiny 并不支持SVG 中的
考慮到移動SVG 的特點,可以將地物按其幾何形狀分為點狀實體、線狀實體、面狀實體,以及注記體四類并用SVG Tiny 進行組織和編碼。
三、手機地圖服務的設計
根據前面的分析,面向手機的地理信息服務整體結構采用C/ S 3 層分布式的網絡模型,分為數據層、中間層和表示層,如圖1.
圖1 手機地圖服務系統(tǒng)結構
數據層: 主要是分布在各Web 站點的地圖數據庫以及其他信息系統(tǒng)。該層包括存有空間數據和屬性數據的分布式空間數據庫、存有空間信息的文件系統(tǒng)以及其他信息系統(tǒng)。由空間數據引擎與中間層連接,負責提供所需的數據。
中間層: 中間層負責根據用戶的需求向數據層申請數據完成必要的信息處理并與客戶端進行交互。通過手機無線上網獲得地圖的服務,類似與一個客戶端"極瘦"和服務器端"極胖"的Web GIS.因此可以采用容易集成的Web 服務技術對外部提供統(tǒng)一的接口。中間層設有Web 服務器和地圖服務器,Web 服務器接受客戶端以HTTP 協(xié)議發(fā)出的服務請求,將這些請求轉給地圖服務器,而地圖服務器接受請求并根據相應的請求啟動相應的數據引擎從后端分布式空間數據庫以及其他系統(tǒng)中進行檢索,將檢索的結果處理并壓縮后,將結果轉給Web 服務器,由Web 服務器返回給客戶端。
表示層: 主要為各類手機設備,根據其存儲和處理能力可分為高端手機和低端手機。
1. 低端手機。
低端手機主要負責實現(xiàn)圖形用戶接口,完成數據的表示,簡單的地圖操作如地圖放大、縮小等。低端手機處理和存儲能力有嚴格限制,大部分的計算工作由服務器承擔,手機只能負責空間數據的可視化以及用戶與服務器的交互界面。為適應帶寬的限制,服務器向低端手機傳輸的SVG 文件只包含圖形數據。當用戶需要服務時向服務器申請數據,服務器響應用戶申請將含移動SVG 格式空間數據發(fā)送至客戶端解析后得到可視化的地圖。當用戶需要進行屬性或其他信息查詢以及數據處理任務時,則再次與服務器交互。
2. 高端手機。
高端手機如PDA 型的手機,處理和存儲能力的限制較小,可以承擔一定的計算工作,而且手機本身可以存儲一定的地圖數據,可進行地圖操作,和較簡單的查詢。其移動SVG 地圖發(fā)布處理模型如圖2所示。服務器向手機發(fā)送的數據不僅包含圖形數據,還可以附加有屬性數據等其他數據,便于在客戶端進行計算,減少手機與服務器交互的次數。高端手機在得到地圖數據后,大部分地圖操作、屬性查詢以及簡單計算任務都可在本地完成,只是在處理一些較復雜的計算時才向服務器申請。
圖2 高端手機移動SVG 地圖發(fā)布處理模型
用戶以文本的形式輸入查詢條或根據手機所處的位置向服務器申請地圖服務,位于中間層的服務器解析用戶查詢條件,從后端數據庫中檢索用戶需要的專題圖層和比例尺,顯示地圖片段及相關信息,經過處理壓縮后根據用戶注冊的手機信息由無線通信網返回適合的地圖數據至手機終端,再由客戶端程序在手機顯示屏上顯示地圖等信息。
四、系統(tǒng)開發(fā)的關鍵技術
1. 圖面信息的簡化
手機地圖服務不同與有線網絡的地圖服務,沒有必要提供非常詳細的圖面信息,這也是由手機的特點決定的。
2. 地圖數據的壓縮
在手機地圖服務中,電子地圖較大的數據量和手機有限的存儲空間以及無線網絡有限的帶寬存在矛盾。這就要求在數據存儲和傳輸時,相同條件下必須對地圖數據進行壓縮?臻g數據在誤差范圍內可進行有損失的數據壓縮。在數據傳輸時,再對地圖數據進行無損失的數據壓縮。雖然采用MobileSVG 對地圖數據進行編碼后與位圖比較起來已經小了很多,但通過一定的技術可以對移動SVG 數據進一步進行壓縮。和所有XML 數據一樣移動SVG數據有高度的可壓縮性,使用XMIL 可以以較高的壓縮因子對移動SVG 數據進行壓縮。因此在服務器端和客戶端還必須配置相應的壓縮和解壓程序。
3. Mobile SVG在客戶端的解釋
手機向服務器申請到的地圖數據是MobileSVG 格式的矢量數據,在客戶端實現(xiàn)地圖的顯示就需要對SVG 數據的解析,而Mobile SVG 是XML在移動圖形方面的應用,它本身是基于XML 的。
因此就涉及到在客戶端如何解釋XML 數據的問題。手機上選擇XML 解析器通常要求解析器本身要小、可移植性強、易于編程而且相對速度要快。而作為嵌入式設備中使用的KXML2 開源解析器是較好的選擇。
4. 基于J2ME 的嵌入式程序設計
系統(tǒng)運行過程中,用戶和終端系統(tǒng)之間又很強的交互性,這種交互性需要終端系統(tǒng)提供友好的用戶界面。J2ME 擁有豐富的菜單功能,易于用程序實現(xiàn)自定義的菜單,并提供事件響應機制。而且J2ME 可以通過HTTP Connect ion 接口解析U RL,設置請求以及解析響應就可以方便和服務器進行通信。同時J2ME 還是一種高度優(yōu)化的Java 運行環(huán)境,采用J2ME 技術進行開發(fā),可以實現(xiàn)設備和平臺的無關性,達到真正的跨平臺和跨設備。
五、總結
移動通信技術和空間信息技術的進步以及手機的逐漸普及,使得向移動用戶提供地圖服務成為可能,而向手機提供地圖服務又是手機附加服務的熱點之一。本文分析了對手機提供地圖的有關服務方式,并采用J2ME 以手機上網的方式獲取地圖,利用Mobile SVG 對地圖數據進行組織和編碼,在此基礎上設計了基于J2ME/ SVG 的手機地圖服務并對其關鍵技術進行討論。希望對服務的實現(xiàn)有所裨益。