




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、. . . . 理工大學(xué)畢業(yè)設(shè)計(jì)(論文)題題 目目 基基于于 R RF FI ID D 的的景景點(diǎn)點(diǎn)導(dǎo)導(dǎo)覽覽系系統(tǒng)統(tǒng)專專 業(yè)業(yè) 軟軟件件工工程程 摘 要隨著移動(dòng)設(shè)備普與和無(wú)線通信技術(shù)的迅猛發(fā)展,無(wú)線射頻識(shí)別技術(shù)應(yīng)用的圍越來(lái)越廣。本文從現(xiàn)實(shí)需求出發(fā),設(shè)計(jì)一個(gè)基于 RFID 的景點(diǎn)導(dǎo)覽系統(tǒng)。J2ME(JAVA 2 MICRO EDITION)是 JAVA 語(yǔ)言三大平臺(tái)之一,它主要針對(duì)資源受限設(shè)備進(jìn)行應(yīng)用程序的開(kāi)發(fā)。它將 JAVA 語(yǔ)言的與平臺(tái)無(wú)關(guān)的特性移植到小型電子設(shè)備上,允許移動(dòng)無(wú)線設(shè)備之間共享應(yīng)用程序。J2EE JAVA2 平臺(tái)企業(yè)版(JAVA 2 PLATFORM,ENTERPRISE ED
2、ITION)是一套全然不同于傳統(tǒng)應(yīng)用開(kāi)發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡(jiǎn)化且規(guī)應(yīng)用系統(tǒng)的開(kāi)發(fā)與部署,進(jìn)而提高可移植性、安全與再用價(jià)值。本文采用這兩種技術(shù)來(lái)進(jìn)行基于 RFID 的景點(diǎn)導(dǎo)覽系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)。論文首先介紹了 J2ME 技術(shù)的一些基本概念與體系結(jié)構(gòu),MIDP 的基本編程方法。然后介紹了 J2ME 的技術(shù)以與 STRUTS 的相關(guān)知識(shí)。接著,重點(diǎn)的介紹了基于 RFID 的景點(diǎn)導(dǎo)覽系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)過(guò)程,根據(jù)總體設(shè)計(jì),提出了系統(tǒng)設(shè)計(jì)模型。系統(tǒng)分為服務(wù)器端和客戶端,服務(wù)器端由一系列 STRUTS 框架開(kāi)發(fā)實(shí)現(xiàn),客戶端利用開(kāi)發(fā) MIDLET 實(shí)現(xiàn)。服務(wù)器端有兩種用戶:管理員和游客,管理員功能主
3、要是對(duì)景點(diǎn)信息的修改、. . . . 標(biāo)簽的管理、景點(diǎn)客流量的統(tǒng)計(jì)、游客的旅游日志管理以與客戶端服務(wù)信息管理功能??蛻舳斯δ苤饕遣樵兌ㄎ还δ?、地圖展示、地圖展示、行程規(guī)劃以與隨身貼士功能。本文重點(diǎn)介紹了這些功能的實(shí)現(xiàn)與設(shè)計(jì)。然后對(duì)系統(tǒng)設(shè)計(jì)與編碼過(guò)程中所遇到的重點(diǎn)難點(diǎn)作了介紹,最后,對(duì)本文工作做出了總結(jié),并提出了進(jìn)一步工作的設(shè)想。關(guān)鍵詞:RFID、J2ME、J2EE、STRUTS、框架AbstractAlong with mobile equipment popular and wireless communication technology rapid development, the w
4、ireless radio frequency recognition technology applications scope is getting more and more broad. This article embarks from the realistic demand, designs one based on the RFID scenic spot survey system. J2ME (JAVA 2 MICRO EDITION) is JAVA language one of three big platforms, it mainly aims at the re
5、sources to limit the equipment to carry on the application procedure the development.It the characteristic which has nothing to do with the platform transplants the JAVA language to the miniaturized electronics on, between the permission migration radio equipment rep shares the application procedure
6、.J2EE the JAVA2 platform enterprise version (JAVA 2 PLATFORM, ENTERPRISE EDITION) is a set is completely different in the traditional application development technical construction, contains many modules, mainly may simplify, and the standard application systems development and the deployment, then
7、enhance the probability, the security and use the value again. This article uses these two kind of technologies to carry on based on the RFID scenic spot survey systems design and the development. . . . 3 / 65The paper first introduced J2ME technology some basic concepts and the architecture, the MI
8、DP basic programming method. Then introduced the J2ME technology and the STRUTS related knowledge.Then, the key introduction based on the RFID scenic spot survey systems design and the performance history, according to the system design, proposed the system design model.The system divides into the s
9、erver end and the client side, the server origin a series of STRUTS frame development realizes, the client side use develops MIDLET to realize. The server end has two kind of users: The manager and the tourist, the manager function is mainly to the scenic spot information revision, labels management
10、, the scenic spot passenger capacity statistics, tourists traveling diary management as well as the client side service information management function. The client side function is mainly inquires the localization function, the map demonstration, the map demonstration, the traveling schedule plan as
11、 well as along with the tips function. This article introduced with emphasis these functions realization with designs.Then the key difficulty which meets to the system design and the code process makes said that finally, worked to this article has made the summary, and proposed further worked tentat
12、ive planKeywords:RFID、J2ME、J2EE、struts、Frame. . . . 1 / 65目錄目錄第一章緒論 11.1 課題背景與意義 11.1.1 基于 RFID 的景點(diǎn)導(dǎo)覽系統(tǒng)概述 11.1.2 移動(dòng)通信技術(shù)的發(fā)展現(xiàn)狀與趨勢(shì) 21.1.3 射頻識(shí)別系統(tǒng)的定義 21.1.4 選題的目的和意義 21.2 無(wú)線射頻識(shí)別 RFID31.2.1 RFID 簡(jiǎn)介 31.2.2 RFID 組成與工作原理 41.2.3 RFID 的優(yōu)勢(shì) 51.3 論文主要工作與結(jié)構(gòu) 5第二章相關(guān)技術(shù) 72.1 J2ME 技術(shù)介紹 72.1.1 Java 技術(shù)的分類(lèi) 72.1.2 J2ME 的優(yōu)勢(shì)
13、 82.1.3 J2ME 的體系結(jié)構(gòu) 82.2 MIDP 的編程方法 112.2.1 J2ME Wireless Toolkit 的安裝 112.2.2 MIDlet 程序的基本結(jié)構(gòu) 112.2.3 MIDlet 的生命周期 132.2.4 MIDlet 應(yīng)用程序開(kāi)發(fā)流程 142.3 STRUTS開(kāi)發(fā) 142.3.1 struts 的定義 142.3.2 Struts 的概念和體系結(jié)構(gòu) 152.3.3 struts 配置 162.3.4 struts 的基本元素 172.3.5 struts 的國(guó)際化 182.3.6 struts 的特點(diǎn) 18第三章基于 RFID 的景點(diǎn)導(dǎo)覽系統(tǒng)實(shí)現(xiàn) 203.
14、1 系統(tǒng)概述 203.2 客戶端功能模塊實(shí)現(xiàn) 223.2.1 查詢定位功能 22. . . . 3.2.2 地圖展示功能 243.2.3 行程規(guī)劃功能 313.2.4 旅游黃頁(yè)功能 313.2.5 景點(diǎn)介紹功能 323.2.6 隨身貼士功能 363.3 服務(wù)器功能實(shí)現(xiàn) 363.3.1 服務(wù)器訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù) 363.3.2 游客登陸注冊(cè) 383.3.3 游客訂票服務(wù) 393.3.3 景點(diǎn)查詢功能 413.3.4 景點(diǎn)維護(hù)功能 413.3.5 系統(tǒng)設(shè)備管理功能 423.3.6 游客信息管理功能 433.3.7 客流量信息管理功能 453.3.8 服務(wù)信息管理功能 483.4 數(shù)據(jù)庫(kù)功能實(shí)現(xiàn) 49第
15、四章難點(diǎn)與對(duì)策 544.1 STRUTS學(xué)習(xí) 544.2 J2ME 地圖處理 54第五章結(jié)論 565.1 總結(jié) 565.2 展望 56致語(yǔ) 57參考文獻(xiàn) 57. . . . 1 / 65第一章 緒 論1.1 課題背景與意義1.1.1 基于 RFID 的景點(diǎn)導(dǎo)覽系統(tǒng)概述最近幾,RFID(無(wú)線射頻識(shí)別技術(shù))被廣泛的用在各方面,現(xiàn)在越來(lái)越多的移動(dòng)設(shè)備都提供了無(wú)線上網(wǎng)功能,也有越來(lái)越多的地方開(kāi)始設(shè)置無(wú)線網(wǎng)絡(luò)基站以提供無(wú)線上網(wǎng)服務(wù)。移動(dòng)設(shè)備與無(wú)線網(wǎng)絡(luò)的結(jié)合將帶給生活更多便利。同時(shí),已經(jīng)有很多款移動(dòng)智能終端提供了 RFID 讀寫(xiě)器配件,可以方便的將 RFID 技術(shù)和智能終端的無(wú)線網(wǎng)絡(luò)服務(wù)相結(jié)合?,F(xiàn)階段,在
16、旅游區(qū)所采用的導(dǎo)覽服務(wù)大概分為如下兩種方式:(1)用錄音帶的語(yǔ)音導(dǎo)覽。它的優(yōu)點(diǎn)是參觀者可自由走動(dòng),選擇本身有興趣的展品或展區(qū)參觀學(xué)習(xí)。但由于儲(chǔ)存容量的限制,當(dāng)參觀者想多獲取比較感興趣的展品的一些相關(guān)知識(shí)時(shí),其往往無(wú)法提供較全面的知識(shí),且互動(dòng)性不足,加之體積龐大,難吸引小朋友使用。此外,聽(tīng)障朋友們也無(wú)法享受語(yǔ)音導(dǎo)覽的解說(shuō)方式。(2)解說(shuō)員導(dǎo)覽方式。它由一名解說(shuō)員帶領(lǐng)一群參觀者重點(diǎn)式地解說(shuō)重要的文物或景點(diǎn),其優(yōu)點(diǎn)為可以即問(wèn)即答,但是參與的參觀者必須亦步亦趨地跟隨解說(shuō)員,且須凝神注意聆聽(tīng)解說(shuō),給參觀者在學(xué)習(xí)中造成不便,且解說(shuō)人員的數(shù)目有限,加之培養(yǎng)專業(yè)解說(shuō)人員需要花費(fèi)大量的人事開(kāi)銷(xiāo),非常不符合經(jīng)濟(jì)效
17、應(yīng)。本文提出使用 RFID 技術(shù)開(kāi)發(fā)出一套運(yùn)行在移動(dòng)終端的導(dǎo)覽系統(tǒng)基于RFID 的景點(diǎn)導(dǎo)覽系統(tǒng)。本系統(tǒng)可以在客戶端通過(guò)查看電子閱讀器來(lái)選擇相關(guān)景點(diǎn)的圖文聲像的信息,也可以根據(jù)景點(diǎn)客流量以與喜好程度來(lái)選擇導(dǎo)覽線路,服務(wù)器端可以由管理員來(lái)管理相關(guān)的設(shè)備、游客和景點(diǎn)信息。. . . . 1.1.2 移動(dòng)通信技術(shù)的發(fā)展現(xiàn)狀與趨勢(shì)當(dāng)前,移動(dòng)、無(wú)線技術(shù)領(lǐng)域正處在一個(gè)高速發(fā)展的時(shí)期,各種創(chuàng)新移動(dòng)、無(wú)線技術(shù)不斷涌現(xiàn)并快速步入商用,移動(dòng)、無(wú)線應(yīng)用市場(chǎng)異?;钴S,移動(dòng)、無(wú)線技術(shù)自身也在快速演進(jìn)中不斷革新。在網(wǎng)絡(luò)融合的大趨勢(shì)下,3G、WIMAX、WLAN 等各種移動(dòng)、無(wú)線技術(shù)在演進(jìn)中相互融合。在多元融合的大趨勢(shì)下,3
18、G、WIMAX、WLAN 等各種無(wú)線技術(shù)在競(jìng)爭(zhēng)中互相借鑒和學(xué)習(xí),涌現(xiàn)出了同時(shí)被上述無(wú)線技術(shù)采用的新型射頻技術(shù),如 MIMO和 OFDM 技術(shù)等。與此同時(shí),在以 ITU 和 3GPP/3GPP2 為引領(lǐng)的蜂窩移動(dòng)通信從 3G 到 E3G,再走向 B3G/4G 的演進(jìn)道路上,以與 IEEE 引領(lǐng)的無(wú)線寬帶接入從無(wú)線個(gè)人域網(wǎng)到無(wú)線局域網(wǎng)、無(wú)線城域網(wǎng),再到無(wú)線廣域網(wǎng)的演進(jìn)道路上,都開(kāi)始增加對(duì)方的容,例如:移動(dòng)通信不斷強(qiáng)化寬帶傳輸性能,無(wú)線寬帶接入不斷增強(qiáng)漫游性能以與安全性能。1.1.3 射頻識(shí)別系統(tǒng)的定義射頻識(shí)別(RADIO FREQUENCY IDENTIFICATION, RFID):俗稱電子標(biāo)簽
19、,是一種非接觸式的自動(dòng)識(shí)別技術(shù),它通過(guò)射頻信號(hào)自動(dòng)識(shí)別目標(biāo)對(duì)象并獲取相關(guān)數(shù)據(jù),識(shí)別工作無(wú)須人工干預(yù),可工作于各種惡劣環(huán)境。RFID 技術(shù)可識(shí)別高速運(yùn)動(dòng)物體并可同時(shí)識(shí)別多個(gè)標(biāo)簽, 操作快捷方便。它由標(biāo)簽(TAG)、閱讀器(READER)、天線(ANTENNA)組成。RFID 技術(shù)的基本工作原理:標(biāo)簽進(jìn)入磁場(chǎng)后,接收解讀器發(fā)出的射頻信號(hào),憑借感應(yīng)電流所獲得的能量發(fā)送出存儲(chǔ)在芯片中的產(chǎn)品信息(PASSIVE TAG,無(wú)源標(biāo)簽或被動(dòng)標(biāo)簽),或者主動(dòng)發(fā)送某一頻率的信號(hào)(ACTIVE TAG,有源標(biāo)簽或主動(dòng)標(biāo)簽);解讀器讀取信息并解碼后,送至中央信息系統(tǒng)進(jìn)行有關(guān)數(shù)據(jù)處理。1.1.4 選題的目的和意義“隨著
20、計(jì)算機(jī)技術(shù)、無(wú)線網(wǎng)絡(luò)通信以與互聯(lián)網(wǎng)技術(shù)飛速發(fā)展,RFID 產(chǎn)業(yè). . . . 3 / 65將在各個(gè)領(lǐng)域大放異彩?!?,彼得哈若普如是說(shuō)。RFID 應(yīng)用領(lǐng)域日益擴(kuò)大,現(xiàn)已涉與到人們?nèi)粘I畹母鱾€(gè)方面,并將成為未來(lái)信息社會(huì)建設(shè)的一項(xiàng)基礎(chǔ)技術(shù)。RFID 可以應(yīng)用于圖書(shū)與文檔管理、門(mén)禁管理、定位與物體跟蹤、環(huán)境感知和支票防偽等多種應(yīng)用領(lǐng)域。但在旅游業(yè)上的應(yīng)用還僅限于門(mén)禁管理。RFID 技術(shù)作為未來(lái)最有前途的信息技術(shù)之一,更得到了全世界的廣泛重視,在很短的時(shí)間取得了巨大發(fā)展。近兩年,社會(huì)各界也越來(lái)越重視 RFID 技術(shù)在國(guó)的發(fā)展和應(yīng)用。領(lǐng)域的各大企業(yè)紛紛投入到研究、開(kāi)發(fā)技術(shù)與應(yīng)用的隊(duì)伍中來(lái)。研究與開(kāi)發(fā) R
21、FID 導(dǎo)覽系統(tǒng)的目的是為參觀者自動(dòng)提供個(gè)性化和交互式的多媒體信息。參觀者利用帶有 CF RFID 讀寫(xiě)器的 PDA 讀取景點(diǎn)處的 RFID 標(biāo)簽后,關(guān)于此景點(diǎn)的詳細(xì)數(shù)據(jù)、資料、圖片或者影片等豐富的多媒體導(dǎo)覽資訊馬上顯示出來(lái)。RFID 導(dǎo)覽系統(tǒng)讓參觀者可隨興趣,自然地取得景點(diǎn)的導(dǎo)覽資料,給參觀者帶來(lái)極大的便利。1.2 無(wú)線射頻識(shí)別 RFID1.2.1RFID簡(jiǎn)介RFID 是一種非接觸式的自動(dòng)識(shí)別技術(shù),它通過(guò)射頻信號(hào)自動(dòng)識(shí)別目標(biāo)對(duì)象并獲取相關(guān)數(shù)據(jù),識(shí)別工作無(wú)須人工干預(yù)。作為條形碼的無(wú)線版本,RFID技術(shù)具有條形碼所不具備的防水、防磁、耐高溫、使用壽命長(zhǎng)、讀取距離大、標(biāo)簽上數(shù)據(jù)可以加密、存儲(chǔ)數(shù)據(jù)容
22、量更大、存儲(chǔ)信息更改自如等優(yōu)點(diǎn),已經(jīng)被世界公認(rèn)為本世紀(jì)十大重要技術(shù)之一,在生產(chǎn)、零售、物流、交通等各個(gè)行業(yè)等各個(gè)行業(yè)有著廣闊的應(yīng)用前景。利用智能電子標(biāo)簽來(lái)標(biāo)識(shí)各種物品的一種新的識(shí)別技術(shù),其核心是智能電子標(biāo)簽,這種標(biāo)簽根據(jù)無(wú)線射頻標(biāo)識(shí)原理 RFID(RADIO FREQUENCY IDENTIFICATION SYSTEM)而生產(chǎn),它與讀寫(xiě)器通過(guò)無(wú)線射頻信號(hào)交換信息,電子標(biāo)簽是未來(lái)標(biāo)簽市場(chǎng)的一種終極產(chǎn)品。. . . . 現(xiàn)在,RFID 是 AIDC 領(lǐng)域最熱門(mén)的技術(shù),盡管這種技術(shù)已經(jīng)存在發(fā)展了許多年了,但它只有在從本領(lǐng)域眾多的發(fā)明技術(shù)中總結(jié)規(guī)劃出一個(gè)技術(shù)標(biāo)準(zhǔn)以后才能得到快速的切實(shí)的應(yīng)用,ISO
23、和 AIM(AUTO-ID MANUFACTURES)正在進(jìn)行這方面的工作,相信不久的將來(lái),RFID 會(huì)得到很快的發(fā)展。1.2.2 RFID 組成與工作原理(1)標(biāo)簽標(biāo)簽也被稱為電子標(biāo)簽或智能標(biāo)簽,它是存帶有天線的芯片,芯片中存儲(chǔ)有能夠識(shí)別目標(biāo)的信息。RFID 標(biāo)簽具有持久性,信息接收傳播穿透性強(qiáng),存儲(chǔ)信息容量大、種類(lèi)多等特點(diǎn)。有些 RFID 標(biāo)簽解讀器通過(guò)接收標(biāo)簽發(fā)出的無(wú)線電波接收讀取數(shù)據(jù)。最常見(jiàn)的是被動(dòng)射頻系統(tǒng),當(dāng)解讀器遇見(jiàn) RFID 標(biāo)簽時(shí),發(fā)出電磁波,周?chē)纬呻姶艌?chǎng),標(biāo)簽從電磁場(chǎng)中獲得能量激活標(biāo)簽中的微芯片電路,芯片轉(zhuǎn)換電磁波,然后發(fā)送給解讀器,解讀器把它轉(zhuǎn)換成相關(guān)數(shù)據(jù)??刂朴?jì)算器就可
24、以處理這些數(shù)據(jù)從而進(jìn)行管理控制。在主動(dòng)射頻系統(tǒng)中,標(biāo)簽中裝有電池在有效圍活動(dòng)。支持讀寫(xiě)功能,目標(biāo)物體的信息能隨時(shí)被更新。(2)讀寫(xiě)器讀寫(xiě)器分為手持和固定兩種,由發(fā)送器,接收儀,控制模塊和TRANSCEIVER 組成,TRANSCEIVER 和控制計(jì)算機(jī)或 PLC 連接從而實(shí)現(xiàn)它的溝通功能。解讀器也有天線接收和傳輸信息。(3)數(shù)據(jù)傳輸和處理系統(tǒng) 工作原理:解讀器通過(guò)接收標(biāo)簽發(fā)出的無(wú)線電波接收讀取數(shù)據(jù)。最常見(jiàn)的是被動(dòng)射頻系統(tǒng),當(dāng)解讀器遇見(jiàn) RFID 標(biāo)簽時(shí),發(fā)出電磁波,周?chē)纬呻姶艌?chǎng),標(biāo)簽從電磁場(chǎng)中獲得能量激活標(biāo)簽中的微芯片電路,芯片轉(zhuǎn)換電磁波,然后發(fā)送給解讀器,解讀器把它轉(zhuǎn)換成相關(guān)數(shù)據(jù)??刂朴?jì)算
25、器就可以處理這些數(shù)據(jù)從而進(jìn)行管理控制。在主動(dòng)射頻系統(tǒng)中,標(biāo)簽中裝有電池在有效圍活. . . . 5 / 65動(dòng)。1.2.3 RFID 的優(yōu)勢(shì)(1)RFID 通過(guò)自動(dòng)的方式迅速簡(jiǎn)便無(wú)誤的獲得關(guān)于產(chǎn)品,地點(diǎn),時(shí)間,交易的信息。不用接觸,看見(jiàn)目標(biāo),即使物品被牢固包裝或是環(huán)境不適,也不會(huì)影響它的識(shí)別功能。這是它有別于條形碼的一大特點(diǎn)。(2)RFID 并不僅僅是代碼,它能夠讀寫(xiě)數(shù)據(jù),能夠在處理系統(tǒng)中儲(chǔ)存資料,并可以將其連接到 PC 或 PLC 網(wǎng)絡(luò)上。RFID 能夠提高數(shù)據(jù)質(zhì)量,貨物管理,資料持久保存等。(3)RFID 在供貨鏈中的運(yùn)用能夠提高管理,加強(qiáng)終端對(duì)終端的連接。RFID 的運(yùn)作不需要人工介入,
26、它無(wú)線運(yùn)作,具有讀寫(xiě)功能。1.3 論文主要工作與結(jié)構(gòu)本文的工作主要包括:(1)學(xué)習(xí)和了解了移動(dòng) RFID 相關(guān)概念、理論和設(shè)計(jì)方法。(2)分析現(xiàn)階段 RFID 的設(shè)計(jì)原理和實(shí)現(xiàn)方法。(3)學(xué)習(xí)掌握 SQL SERVER 數(shù)據(jù)庫(kù)、服務(wù)器開(kāi)發(fā)原理與其應(yīng)用,深入學(xué)習(xí)J2EE 與 J2ME 的開(kāi)發(fā)原理,采用三層結(jié)構(gòu)模型。(4)基于 J2ME 技術(shù),開(kāi)發(fā)實(shí)現(xiàn)一個(gè)基于 RFID 的景點(diǎn)導(dǎo)覽系統(tǒng),系統(tǒng)包括三個(gè)層次:服務(wù)器端:A)采用 TOMCAT 服務(wù)器作為 SERVLET 的引擎,支持不同類(lèi)型的應(yīng)用服務(wù)程序。B) 采用 STRUTS 框架設(shè)計(jì)和設(shè)計(jì)和開(kāi)發(fā)課題。. . . . 客戶端:A)采用 J2ME 的
27、 CLDC/MIDP 規(guī),通過(guò) 協(xié)議向服務(wù)器發(fā)出請(qǐng)求。B)采用多線程技術(shù)和消息隊(duì)列處理用戶操作和服務(wù)器消息,有效解決了響應(yīng)與顯示的與時(shí)性。數(shù)據(jù)層:A) 采用數(shù)據(jù)庫(kù) SQL SERVER 2000 數(shù)據(jù)。(5)對(duì)本文所開(kāi)發(fā)的系統(tǒng)的重點(diǎn)難點(diǎn)作出了總結(jié)。論文共分 5 章,結(jié)構(gòu)如下:第一章為前言,簡(jiǎn)單介紹了當(dāng)前 RFID 應(yīng)用的發(fā)展現(xiàn)狀,RFID 實(shí)現(xiàn)的意義和目標(biāo)以與 RFID 的基本理論。第二章主要對(duì)景點(diǎn)導(dǎo)覽系統(tǒng)的開(kāi)發(fā)技術(shù)進(jìn)行了介紹。對(duì) J2ME 技術(shù)、J2EE技術(shù)、MIDP 的編程方法進(jìn)行詳細(xì)的介紹。第三章是本文的重點(diǎn),詳細(xì)講述了景點(diǎn)導(dǎo)覽系統(tǒng)的實(shí)現(xiàn)過(guò)程。分別講述了客戶端的實(shí)現(xiàn)原理、代碼與圖示,服務(wù)
28、器端的實(shí)現(xiàn)原理、代碼與圖示,比較清晰的展現(xiàn)了系統(tǒng)的功能實(shí)現(xiàn)。第四章主要是針對(duì)在開(kāi)發(fā)過(guò)程中遇到的難點(diǎn)的一個(gè)回顧。因?yàn)樵诿總€(gè)階段都會(huì)遇到很多問(wèn)題、難點(diǎn),所以在這里列出幾個(gè)來(lái)重點(diǎn)講解一下,也從側(cè)面來(lái)反映系統(tǒng)的開(kāi)發(fā)過(guò)程。第五章是對(duì)整個(gè)學(xué)習(xí)過(guò)程的總結(jié),講述自己在學(xué)習(xí)過(guò)程中的心得體會(huì)。. . . . 7 / 65第二章相關(guān)技術(shù)2.1 J2ME 技術(shù)介紹2.1.1 Java 技術(shù)的分類(lèi)圖 21 Java 體系結(jié)構(gòu)JAVA 的最大目標(biāo)和特點(diǎn),就是“一次編寫(xiě),到處運(yùn)行”的平臺(tái)無(wú)關(guān)性。但是,正如 SUN 認(rèn)識(shí)到的,一套標(biāo)準(zhǔn)無(wú)法適應(yīng)各式各樣的需求。因此,JAVA技術(shù)目前共有三套,分別針對(duì)不同的平臺(tái)的應(yīng)用。JAVA2
29、 PLATFORM STANDARD EDITION ( J2SE,JAVA 標(biāo)準(zhǔn)版 ):針對(duì)桌面端的 PC 和工作站的個(gè)人和低端商務(wù)應(yīng)用。JAVA2 PLATFORM ENTERPRISE EDITION ( J2EE,JAVA 企業(yè)版 ):針對(duì)服務(wù)器端企業(yè)級(jí)應(yīng)用,支持 SERVLET、JSP 和 XML 等等。JAVA2 PLATFORM MICRO EDITION ( J2ME, JAVA 移動(dòng)版 ):針對(duì)有限存、顯示和處理能力的設(shè)備,主要是消費(fèi)電子和嵌入式設(shè)備領(lǐng)域(這實(shí)際正是JAVA 語(yǔ)言設(shè)計(jì)最初的目標(biāo)領(lǐng)域)。. . . . 2.1.2J2ME 的優(yōu)勢(shì)移動(dòng)設(shè)備 PDA 市場(chǎng)的繁榮發(fā)展造
30、成了五花八門(mén)的廠商與品種異常廣泛的設(shè)備例如兩種設(shè)備也許具有一樣的功能當(dāng)實(shí)現(xiàn)的方法可能會(huì)有相當(dāng)大的區(qū)別例如對(duì) PDA 和手持來(lái)說(shuō)都具有顯示的功能但屏幕的實(shí)際尺寸卻有很大的區(qū)別支持的色深也不一樣重復(fù)的開(kāi)發(fā)工作以與移植的不便性使得開(kāi)發(fā)成本與開(kāi)發(fā)難度不斷提高這就使得設(shè)備廠商要求擁有一個(gè)統(tǒng)一的開(kāi)發(fā)平臺(tái)2.1.3 J2ME 的體系結(jié)構(gòu) 值得注意的是,JAVA 所宣稱的“一次編譯,到處運(yùn)行”在這里是不適用的。這種“跨平臺(tái)”在某些時(shí)候是毫無(wú)意義的。在 J2SE 上編譯好的程序在J2ME 上是沒(méi)辦法運(yùn)行的,因?yàn)閺膬煞N平臺(tái)所支持的類(lèi)庫(kù)到程序的結(jié)構(gòu)都有所不同。所以在設(shè)計(jì) J2ME 應(yīng)用時(shí)應(yīng)該充分考慮到這些因素。下圖
31、給出 J2ME 一個(gè)總體的構(gòu)架。圖 22 J2ME 一個(gè)總體的構(gòu)架. . . . 9 / 65下面我們分別來(lái)介紹這三部分:CONFIGURATIONJ2ME 將嵌入式設(shè)備分為兩類(lèi):一種是 CDC(CONNECTED DEVICE CONFIGURATION,資源無(wú)限設(shè)備),另一種是 CLDC ( CONNECTED LIMITED DEVICE CONFIGURATION,資源受限設(shè)備)。資源受限設(shè)備一般指手機(jī)、PDA 這種運(yùn)算能力有限、電力供應(yīng)依靠電池、網(wǎng)絡(luò)帶寬有限的設(shè)備。而資源無(wú)限設(shè)備是相對(duì)資源有限設(shè)備來(lái)說(shuō)的,它們一般有充足的電力供應(yīng),如電視機(jī)頂盒等。在 CDC 和 CLDC 規(guī)中,又分別
32、定義硬件要滿足的要求。如表 2-1:表 2-1 CLDC 和 CDC 的比較JSR 編號(hào)JSR-36JSR-30電源供應(yīng)充足電池供電有限網(wǎng)絡(luò)必須有連接網(wǎng)絡(luò)的能力僅支持有線方式的網(wǎng)絡(luò)連接功能主要應(yīng)用電視機(jī)頂盒、高端 PDA etc.手機(jī)、雙向?qū)ず魴C(jī)、PDA etc.虛擬機(jī)CVMKVM支持的ProfileFoundation ProfileMIDPRAM不小于 256KRAM 與 ROM 再加閃存要為 128k512kROM不小于 512KRAM 與 ROM 再加閃存要為 128k512k在規(guī)中所定義的類(lèi)庫(kù)除了 JAVA 標(biāo)準(zhǔn)核心類(lèi)庫(kù)的子集外,也加入了與該類(lèi)型的設(shè)備特性相符的擴(kuò)充類(lèi)庫(kù)。整體來(lái)說(shuō),J
33、2ME 先把所有的嵌入式設(shè)備利用CONFIGURATION 概念化分成兩種類(lèi)型,與其它 JAVA 版本對(duì)于核心類(lèi)庫(kù)與擴(kuò)充類(lèi)庫(kù)的概念相比較。CLDC 和 CDC 的圍應(yīng)該如圖 23 所示:. . . . 圖 23 CDC、CLDC 的圍PROFILE通常同一個(gè) JAVA 程序在不同的嵌入式設(shè)備上所顯示的用戶界面風(fēng)格不完全一樣。在不同設(shè)備上具體應(yīng)該怎樣顯示就定義在 PROFILE 中。PROFILE 中也定義了程序應(yīng)該如何與用戶或設(shè)備交互(例如,程序的生命周期,如何接受來(lái)自用戶的信息)。PROFILE 中定義的擴(kuò)充類(lèi)庫(kù)是根據(jù)底層 CONFIGURATION 所定義的核心類(lèi)庫(kù)所建立的,為了更符合特殊
34、設(shè)備的需求,PROFILE 會(huì)在CONFIGURATION 中的類(lèi)增加新的方法,或是讓方法拋出新的異常。在 PROFILE中也定義了特定種類(lèi)嵌入式設(shè)備的最小配備需求。一般情況下 PROFILE 對(duì)顯示功能、網(wǎng)絡(luò)功能以與耗電量等相關(guān)需求會(huì)比 CONFIGURATION 中的需求要高。建立在 CLDC 上的 PROFILE 有:MIDP (MOBILE INFORMATION DEVICE PROFILE),這個(gè) PROFILE 是針對(duì)移動(dòng)設(shè)備所定義的,如手機(jī)、尋呼機(jī)等,本文客戶端的實(shí)現(xiàn)就是采用MIDP2.0。所以說(shuō)本系統(tǒng)的客戶端不只是手機(jī),而是所有采用 MIDP2.0 規(guī)的移動(dòng)設(shè)備。INFORM
35、ATION MODULE PROFILE,是為不需要圖形界面的小型設(shè)備定制的。. . . . 11 / 65另外各個(gè)手機(jī)生產(chǎn)廠商也制定了自己的各種 PROFILES。OEM EXTENSIONS/ OPTIONAL PACKAGE。除了 CONFIGURATION 和 PROFILE之外,在 J2ME 規(guī)中還定義了廠商選擇性實(shí)現(xiàn)包。廠商選擇性實(shí)現(xiàn),通常是一些本身具有獨(dú)立價(jià)值的 API,廠商可以依照自己的需求,選擇性的實(shí)現(xiàn)其中某些 OPTIONAL PACKAGES 規(guī)。廠商選擇性實(shí)現(xiàn)包與 CLDC 和 MIDP 的關(guān)系如下圖 2-4 所示:圖 24 CLDC 和 MIDP 的關(guān)系2.2 MID
36、P 的編程方法2.2.1 J2ME Wireless Toolkit 的安裝MIDP 應(yīng)用程序的外,還必須借助一些特殊的開(kāi)發(fā)工具和程序庫(kù)。因此必須要額外安裝 J2ME WIRELESS TOOLKIT(簡(jiǎn)稱 WTK)。您可以該站點(diǎn):JAVA.SUN./PRODUCTS/SJWTOOLKIT/DOWNLOAD-2_2_1.HTML,下載該軟件的最新版本 J2ME WIRELESS TOOLKIT2.2.1。如果您已經(jīng)配置好 JDK,只需點(diǎn)擊安裝文件就可以迅速安裝 WTK。. . . . 2.2.2 MIDlet 程序的基本結(jié)構(gòu)在 MIDP 中定義了一種新的應(yīng)用程序模型 MIDLET。MIDLET
37、 是一個(gè)可以執(zhí)行的應(yīng)用程序與基本單位,它繼承自 JAVAX.MICROEDITION.MIDLET. MIDLET,被 JAM (JAVA APPLICATION MANAGER) 管理,同時(shí) MIDLET 可以和JAM 通信。通知應(yīng)用管理軟件自己狀態(tài)的變化,通常是通過(guò)方法NOTIFYDESTROYED()和 NOTIFYPAUSED()實(shí)現(xiàn)的。MIDLET 繼承自 JAVAX.MICROEDITION.MIDLET. MIDLET。該類(lèi)中定義了三個(gè)抽象方法 STARTAPP(), PAUSEAPP()和 DESTROYAPP()。因此,我們編寫(xiě)的程序必須重寫(xiě)這三個(gè)方法。一個(gè) MIDLET 應(yīng)
38、用程的基本程序結(jié)構(gòu)如下:import javax.microedition.midlet.*;import javax.microedition.lcdui.*; public class HelloWorld extends MIDlet implements CommandListener private Command exitCommand; private TextBox tb; public HelloWorld()exitCommand =new Command(Exit,Command.EXIT,1); tb =new TextBox(Hello MIDlet,Hello,Wo
39、rld!,15,0); tb.addCommand(exitCommand); tb.setCommandListener(this); protected void startApp() Display.getDisplay(this).setCurrent(tb); protected void pauseApp() . . . . 13 / 65protected void destroyApp(boolean u) public void commandAction(Command c,Displayable d) if (c =exitCommand) destroyApp(fals
40、e); notifyDestroyed(); 2.2.3 MIDlet 的生命周期MIDLET 有三個(gè)狀態(tài),分別是 PAUSE, ACTIVE 和 DESTROYED。在啟動(dòng)一個(gè)MIDLET 的時(shí)候,應(yīng)用管理軟件會(huì)首先創(chuàng)建一個(gè) MIDLET 實(shí)例并使得他處于PAUSE 狀態(tài),當(dāng) STARTAPP()方法被調(diào)用的時(shí)候 MIDLET 進(jìn)入 ACTIVE 狀態(tài),也就是所說(shuō)的運(yùn)行狀態(tài)。在 ACTIVE 狀態(tài)調(diào)用 DESTROYAPP(BOOLEAN UNCONDITIONAL)或者 PAUSEAPP()方法可以使 MIDLET 進(jìn)入 DESTROYED 或者PAUSE 狀態(tài)。事實(shí)上,當(dāng) DESTROY
41、APP()方法被調(diào)用的時(shí)候,AMS 通知 MIDLET進(jìn)入 DESTROYED 狀態(tài)。在 DESTROYED 狀態(tài)的 MIDLET 必須釋放了所有的資源,并且保存數(shù)據(jù)。如果 UNCONDITIONAL 為 FALSE 的時(shí)候,MIDLET 可以在接到通知后,拋出 MIDLETSTATECHANGEEXCEPTION 而保持在當(dāng)前狀態(tài)。如果設(shè)置為T(mén)RUE。的話,則必須立即進(jìn)入 DESTROYED 狀態(tài)。圖 2-5 說(shuō)明了 MIDLET 狀態(tài)改. . . . 變情況。圖 25 MIDlet 生命周期2.2.4 MIDlet 應(yīng)用程序開(kāi)發(fā)流程圖 2-7 所示是標(biāo)準(zhǔn)的 JAVA 手機(jī)程序的開(kāi)發(fā)流程。首
42、先編寫(xiě)代碼,然后編譯源代碼為 CLASS 文件。編譯好的 CLASS 文件還要經(jīng)過(guò)預(yù)先審核才能在 KVM上運(yùn)行。根據(jù) MIDP 規(guī),一個(gè)程序最終必須經(jīng)過(guò)打包合成,才能被 JAM 順利加載運(yùn)行。所以最后利用 JDK 附的 JAR.EXE 這個(gè)包裝工具產(chǎn)生 JAR 文件。至此一個(gè) MIDLET 應(yīng)用程序的開(kāi)發(fā)就完成了。一個(gè)完整的 MIDLET 應(yīng)用程序是由兩個(gè)文件組成:應(yīng)用程序主體(JAR 文件,ZIP 壓縮文件)和應(yīng)用程序描述文件(JAD 文件,純文本文件)。JAD 文件有兩個(gè)作用:一是用戶在下載 MIDLET 前可以先下載 JAD 文件,JAD 文件一般體積比較小,看過(guò) JAD 文件后決定是否
43、下載應(yīng)用程序,這樣可以節(jié)省費(fèi)用;二是在 JAD 文件中可以加入證書(shū)(CERTIFICATE),以確保通過(guò)網(wǎng)絡(luò)傳輸?shù)膽?yīng)用程序在傳輸過(guò)程中沒(méi)有被篡改。2.3 struts 開(kāi)發(fā)2.3.1struts的定義框架(FRAMEWORK)是可重用的,半成品的應(yīng)用程序,可以用來(lái)產(chǎn)生專門(mén)的定制程序JOHNSON??蚣芟蜷_(kāi)發(fā)人員提供一系列具有以下特征的骨架組件:(1) 已經(jīng)知道它們?cè)谄渌绦蛏瞎ぷ鞯暮芎?;?) 它們隨時(shí)可以在下一個(gè)項(xiàng)目中使用;(3) 它們可以被組織的其它團(tuán)隊(duì)使用;STRUTS 框架是基于 MODEL 2 的架構(gòu)。它提供一個(gè)控制器 SERVLET 來(lái)處. . . . 15 / 65理導(dǎo)航流和一些
44、特殊類(lèi)來(lái)幫助數(shù)據(jù)訪問(wèn)。隨框架也提供一個(gè)豐富的標(biāo)簽庫(kù),以使 STRUTS 易于和 JSP 一起使用。2.3.2Struts 的概念和體系結(jié)構(gòu)STRUTS 有其自己的控制器(CONTROLLER),同時(shí)整合了其他的一些技術(shù)去實(shí)現(xiàn)模型層(MODEL)和視圖層(VIEW)。在模型層,STRUTS 可以很容易的與數(shù)據(jù)訪問(wèn)技術(shù)相結(jié)合,包括 E,JDBC 和 OBJECT RELATION BRIDGE。在視圖層,STRUTS 能夠與 JSP, VELOCITY TEMPLATES,XSL 等等這些表示層組件相結(jié)合。STRUTS FRAMEWORK 是 MVC 模式的體現(xiàn),下面我們就從分別從模型、視圖、控制
45、器來(lái)看看 STRUTS 的體系結(jié)構(gòu)(ARCHITECTURE)。下圖顯示了 STRUTS FRAMEWORK 的體系結(jié)構(gòu)響應(yīng)客戶請(qǐng)求時(shí)候,各個(gè)部分工作的原理:圖26 struts的體系結(jié)構(gòu)從視圖角度(VIEW)首先,STRUTS 提供了 JAVA 類(lèi) ORG. APACHE.STRUTS.ACTION.ACTIONFORM,JAVA 開(kāi)發(fā)者將該類(lèi)細(xì)分來(lái)創(chuàng)建表單BEAN。在運(yùn)行時(shí),該 BEAN 有兩種用法:(1)當(dāng) JSP 準(zhǔn)備相關(guān)的 HTML,表單以進(jìn)行顯示時(shí),JSP 將訪問(wèn)該 BEAN(它保存要放入表單中的值)。那些值是從業(yè)務(wù)邏輯或者是從先前的用戶輸入來(lái)提. . . . 供的。(2)當(dāng)從 W
46、EB 瀏覽器中返回用戶輸入時(shí),該 BEAN 將驗(yàn)證并保存該輸入以供業(yè)務(wù)邏輯或(如果驗(yàn)證失敗的話)后續(xù)重新顯示使用。其次,STRUTS 提供了許多定制 JSP 標(biāo)記,它們的使用簡(jiǎn)單,但是它們?cè)陔[藏信息方面功能強(qiáng)大。例如,除了 BEAN 名稱和給定 BEAN 中每個(gè)段的名稱之外,頁(yè)面設(shè)計(jì)者不需要知道有關(guān)表單 BEAN 的更多信息。從模型角度(MODEL)STRUTS 雖然不直接有助于模型開(kāi)發(fā)。在 STRUTS 中,系統(tǒng)模型的狀態(tài)主要由 ACTIOMFORM BEAN 和值對(duì)象體現(xiàn)。從控制器角度(CONTROLLER)在 STRUTS FRAMEWORK 中, CONTROLLER 主要是 ACTI
47、ONSERVLET,但是對(duì)于業(yè)務(wù)邏輯的操作則主要由 ACTION、ACTIONMAPPING、ACTIONFORWARD 這幾個(gè)組件協(xié)調(diào)完成(也許這幾個(gè)組件,應(yīng)該劃分到模型中的業(yè)務(wù)邏輯一塊)。其中,ACTION 扮演了真正的控制邏輯的實(shí)現(xiàn)者,而 ACTIONMAPPING 和ACTIONFORWARD 則指定了不同業(yè)務(wù)邏輯或流程的運(yùn)行方向。2.3.3 struts 配置(1)STRUTS 可以不需要安裝(2)拷貝 STRUTS LIB 下的所有的 JAR 包到 WEB-INF/LIB 下(3)修改 WEB.XML 文件,配置 ACTIONSERVLET ACTION ORG.APACHE.ST
48、RUTS.ACTION.ACTIONSERVLET CONFIG. . . . 17 / 65 /WEB-INF/STRUTS-CONFIG.XML DEBUG 3 DETAIL 3 0 ACTION *.DO (4)配置 STRUTS-CONFIG.XML是 STRUTS 配置文件的根元素,和它對(duì)應(yīng)的配置類(lèi)為ORG.APACHE.STRUTS.CONFIG.MODULECONFIG。它的 DTD 定義如下:。在 STRUTS 配置文件中,必須按以上 DTD 指定. . . . 2.3.4struts 的基本元素視圖:視圖是由一組 JSP 文件組成。視圖和控制器與模型之間交互,并為模型提供用戶
49、界面。模型:模型表示應(yīng)有程序的狀態(tài)和業(yè)務(wù)邏輯。業(yè)務(wù)邏輯常由 E 或JAVABEAN 組件實(shí)現(xiàn)。在 MVC 應(yīng)用程序中,模型層通常是最大最重要的部分,它負(fù)責(zé)保存事務(wù)邏輯代碼和數(shù)據(jù)庫(kù)訪問(wèn)代碼;模型是應(yīng)用程序的核心。因此,模型決定了應(yīng)用程序的功能??刂破鳎嚎刂破饔?ACTIONSERVLET 類(lèi)和 ACTION 類(lèi)實(shí)現(xiàn)。業(yè)務(wù)邏輯的操作主要由 ACTION 實(shí)現(xiàn)。ACTIONMAPPING、ACTIONFORWARD 這幾個(gè)組件協(xié)調(diào)完成。ACTION 扮演了真正的控制邏輯的實(shí)現(xiàn)者。ACTIONSERVLET 繼承自JAVAX.SERVLET. . SERVLET 類(lèi)。ACTIONSERVLET 主要負(fù)
50、責(zé)將的客戶請(qǐng)求信息組裝后,根據(jù)配置文件的指定描述,轉(zhuǎn)發(fā)到適當(dāng)?shù)奶幚砥靼凑誗ERVELT 的標(biāo)準(zhǔn),所有的 SERVLET 必須在 WEB 配置文件(WEB.XML)聲明。同樣,ACTOINSERVLET 必須在 WEB APPLICATION 配置文件(WEB.XML)中描述。2.3.5 struts 的國(guó)際化STRUTS 允許將不同語(yǔ)言的文字寫(xiě)在多個(gè)資源文件中,每個(gè)資源對(duì)應(yīng)一種語(yǔ)言,而在 JSP 頁(yè)面上則通過(guò) STRUTS 標(biāo)簽來(lái)顯示文字,該標(biāo)簽可以根據(jù)瀏覽器的當(dāng)前語(yǔ)言設(shè)置確定從對(duì)應(yīng)的語(yǔ)種資源文件中取出字符串,顯示在頁(yè)面上。資源文件的存放目錄可以是/WEB-INF/CLASSES/下的任意目錄
51、,為了便于管理 ,建議在/WEB-INF/ CLASSES/下建立目錄 RESOURCES,將所有的資源文件都放在該目錄下。STRUTS 通過(guò)配置文件 STRUTS-CONFIG.XML 配置資源文件的所在位置。2.3.6 struts 的特點(diǎn)(1) STRUTS 不僅是線程安全(THREAD- D-DEPENDENT)的。. . . . 19 / 65(2) ACTIONFORM BEAN 最小化子類(lèi)代碼并縮短子類(lèi)層次。(3) STRUTS 標(biāo)簽庫(kù)提供通用功能。(4) STRUTS 組件對(duì)應(yīng)用來(lái)說(shuō)都是可重用的。(5) STRUTS 是輕量型架構(gòu)。(6) STRUTS 是標(biāo)準(zhǔn)兼容的。(7) S
52、TRUTS 是開(kāi)源的,具有良好的文檔。. . . . 第三章 基于 RFID 的景點(diǎn)導(dǎo)覽系統(tǒng)實(shí)現(xiàn)3.1 系統(tǒng)概述本系統(tǒng)采用 B/S 模式開(kāi)發(fā),并且詳細(xì)設(shè)計(jì)了服務(wù)器端和客戶端的功能模塊,如圖 3-1 所示:圖 3-1 系統(tǒng)功能模塊結(jié)構(gòu)從圖中可以看出,系統(tǒng)為三層結(jié)構(gòu):數(shù)據(jù)層、服務(wù)器層、客戶層。服務(wù)器端實(shí)現(xiàn)管理員功能,游客功能;客戶端實(shí)現(xiàn)查詢定位、地圖展示、行程規(guī)劃、旅游黃頁(yè)、景點(diǎn)介紹、隨身貼士等功能。使用移動(dòng)終端的導(dǎo)覽示意圖如圖 3-2 所示,網(wǎng)絡(luò)拓?fù)淙鐖D 3-3 所示。. . . . 21 / 65eWLAN媒體庫(kù)展品RFID DBWeb Browser游客介紹/推薦服務(wù)器游客日志3-2 使用移
53、動(dòng)終端的導(dǎo)覽示意圖3-2 RFID 網(wǎng)絡(luò)結(jié)構(gòu)示意圖. . . . 3.2 客戶端功能模塊實(shí)現(xiàn)系統(tǒng)功能模塊共分為六塊:查詢定位、地圖展示、行程規(guī)劃、旅游黃頁(yè)、景點(diǎn)介紹、隨身貼士。3.2.1 查詢定位功能J2ME 手機(jī)查詢定位功能分為三種,定點(diǎn)查詢、模糊查詢和類(lèi)別查詢。主要是通過(guò)客戶端向服務(wù)器發(fā)送查詢請(qǐng)求,通過(guò)服務(wù)器處理向客戶端返回相應(yīng)信息的地圖。如圖 3-2 所示:定點(diǎn)查詢:通過(guò)輸入所熟悉的游客的標(biāo)簽 Id 號(hào),系統(tǒng)連接服務(wù)器,服務(wù)器返回該標(biāo)簽持有者所在的位置,以與該位置的景點(diǎn)詳細(xì)信息。模糊查詢:輸入景點(diǎn)的代號(hào)(拼音首字母) ,系統(tǒng)連接服務(wù)器,服務(wù)器根據(jù)景點(diǎn)代號(hào)返回相應(yīng)的景點(diǎn)的位置信息。類(lèi)別查詢
54、:根據(jù)景點(diǎn)類(lèi)別,服務(wù)器返回同一類(lèi)別的景點(diǎn)的詳細(xì)信息。圖 3-4 查詢定位實(shí)現(xiàn)連接 的代碼段:public class CommHandler private String URL;. . . . 23 / 65 public CommHandler(String URL) this.URL = URL; /發(fā)送消息 public String sendMessage(String message) throws IOException Connection Conn; DataInputStream input; DataOutputStream output; String result;
55、try Conn = open(); output = this.openDataOutputStream( Conn); output.writeUTF(message); output.close(); input = this.openDataInputStream( Conn); result = input.readUTF(); System.out.println(result); closeConnection( Conn,input,output); return result; finally /打開(kāi)連接 public Connection open() throws IOE
56、xception try Connection connection = ( Connection) Connector.open(URL); connection.setRequestProperty(User-Agent, System .getProperty(files);. . . . connection.setRequestProperty(Content-Type, application/octet-stream); connection.setRequestMethod( Connection.POST); return connection
57、; catch (IOException ioe) throw ioe; /打開(kāi)數(shù)據(jù)連接 private DataInputStream openDataInputStream( Connection conn) throws IOException int code = conn.getResponseCode(); if (code = Connection. _OK) return conn.openDataInputStream(); else throw new IOException(); 3.2.2 地圖展示功能本系統(tǒng)對(duì)地圖實(shí)行放大縮小和漫游等操作,并且可以定位到相應(yīng)的景點(diǎn)上。對(duì)
58、于圖片的放大縮小,簡(jiǎn)單的來(lái)說(shuō)就是圖像的變形變換,就是把源圖像每個(gè)點(diǎn)坐標(biāo)通過(guò)變形運(yùn)算轉(zhuǎn)為目標(biāo)圖像相應(yīng)點(diǎn)的新坐標(biāo),但是這樣會(huì)導(dǎo)致一個(gè)問(wèn)題就是目標(biāo)點(diǎn)的坐標(biāo)通常不會(huì)是整數(shù)。所以在做放大變換時(shí),需要計(jì)算生成沒(méi)有被映射到的點(diǎn);而在縮小變換時(shí),需要?jiǎng)h除一些點(diǎn)。這樣,最簡(jiǎn)單. . . . 25 / 65的辦法就是插值算法:“最近鄰域法” 。顧名思義,就是把非整數(shù)坐標(biāo)作一個(gè)四舍五入,取最近的整數(shù)點(diǎn)。而圖片的漫游功能則是根據(jù)按鍵來(lái)選擇,設(shè)計(jì)一個(gè)方法來(lái)根據(jù)按鍵的不同設(shè)置 x 、y 坐標(biāo)的變換。如圖 3-3 所示: (原圖) (縮小 50%) (放大 50%)圖 3-5 地圖的放大縮小功能/實(shí)現(xiàn)地圖縮放功能的代碼段:
59、插值算法private Image ZoomImage(Image srcImg, int desW, int desH) int srcW = srcImg.getWidth(); /原始圖像寬 int srcH = srcImg.getHeight(); /原始圖像高 /計(jì)算插值表 int tabY = new intdesH; int tabX = new intdesW; int sb = 0; int db = 0; int tems = 0; int temd = 0; int distance = srcH desH ? srcH : desH; for (int i= 0; i
60、 distance) tems -= distance; sb+; if (temd distance) temd -= distance; db+; sb = 0; db = 0; tems = 0; temd = 0; distance = srcW desW ? srcW : desW; for (int i = 0; i distance) tems -= distance; sb+; if (temd distance) temd -= distance; db+; /生成放大縮小后圖形像素 buf . . . . 27 / 65 Image desImg = Image.creat
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 買(mǎi)商鋪投資合同樣本
- 出租倉(cāng)庫(kù)商鋪合同標(biāo)準(zhǔn)文本
- 出口機(jī)械加工合同范例
- 農(nóng)機(jī)借用合同樣本
- 健身培訓(xùn)協(xié)議合同范例
- 凈化設(shè)備采購(gòu)合同樣本
- 關(guān)于車(chē)禍賠償合同標(biāo)準(zhǔn)文本
- 京東轉(zhuǎn)讓合同標(biāo)準(zhǔn)文本
- 供貨商合同樣本
- 農(nóng)副產(chǎn)購(gòu)銷(xiāo)合同樣本
- GB/T 7554-1987電報(bào)用五單位數(shù)字保護(hù)碼
- GB/T 39218-2020智慧化工園區(qū)建設(shè)指南
- GB/T 32788.5-2016預(yù)浸料性能試驗(yàn)方法第5部分:樹(shù)脂含量的測(cè)定
- GA/T 959-2011機(jī)動(dòng)車(chē)區(qū)間測(cè)速技術(shù)規(guī)范
- 污水管網(wǎng)工程主要項(xiàng)目清單與計(jì)價(jià)表參考模板范本
- 如何提高基層干部群眾工作能力課件
- 《中國(guó)少先隊(duì)歌》歌詞帶拼音
- 垃圾分類(lèi)科普課件
- 工程設(shè)計(jì)費(fèi)收費(fèi)標(biāo)準(zhǔn)
- 環(huán)網(wǎng)柜基礎(chǔ)知識(shí)培訓(xùn)課程完整版課件
- 海姆立克急救(生命的擁抱)課件
評(píng)論
0/150
提交評(píng)論