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