【正文】
isitor visitor:當(dāng)前用戶。(11)private Coordinates beginCoordinates,endCoordinates:路線規(guī)劃起點和終點。i()。啟動聯(lián)網(wǎng)地圖或離線地圖時,同時啟動興趣點靠近事件添加線程、改變靠近動畫幀的線程,這樣便可不斷地對發(fā)生過靠近事件的興趣點再次添加靠近監(jiān)聽事件(因為路標(biāo)發(fā)生過靠近事件后,靠近監(jiān)聽事件將不再有效) 、對靠近動畫的幀進(jìn)行改變。(8)private static int STATE=0:自由瀏覽狀態(tài)下,記錄當(dāng)前操作的狀態(tài),0 表示未選中起始點和終點,1 表示選中的起始點,2 表示選中了終點。因為離線地圖類與聯(lián)網(wǎng)地圖類大部分功能相同,所以相同的部分,下面就不再做介紹。 } =new Coordinates(lat+latT,lonlonT,310)。 } else if(zoom==16){ =new Coordinates(lat+latTemp,lonlonTemp,310)。//位置變化,跟根地圖所在空間以及當(dāng)前坐標(biāo)計算地圖左上角、右下角坐標(biāo)if(zoom16){ double latT=latTemp。有則進(jìn)行地圖更新,并且在執(zhí)行更新地圖后刪除 m_cmd 里面的元素;沒有則線程處于等待狀態(tài)。通過在自由瀏覽狀態(tài)下或路線規(guī)劃界面,獲取路徑規(guī)劃的起點和終點,然后將起點和終點經(jīng)緯度通過 HTTP 協(xié)議發(fā)送給 Google Directions API,將得到規(guī)劃好路徑上所有拐點經(jīng)緯度。初始化聯(lián)網(wǎng)地圖時,需要初始化landMarks,并且要為每個興趣點添加靠近監(jiān)聽事件,具體代碼封裝在 public void addProximity()里。lp 初始化代碼如下://初始化位置供應(yīng)商Criteria c=new Criteria()。以下為具體流程邏輯圖:MyGPSMidlet界面切換類changForm方法MapCanvas聯(lián)網(wǎng)地圖OffLineMapCanvas離線地圖AddLandMarkForm興趣點添加ScopeQueryLandMarkForm指定地點范圍興趣點搜索QueryLandMarkForm興趣點查詢刪除鎖定PlanLandThreadForm路線規(guī)劃圖 43 界面切換類流程邏輯 聯(lián)網(wǎng)地圖類聯(lián)網(wǎng)地圖類()程序運(yùn)行的主要界面,完成了地圖上各元素的獲取、繪制等,實現(xiàn)了用戶位置的實時定位、對用戶位置與興趣點(路標(biāo))相對位置的監(jiān)聽、通過 Command 命令實現(xiàn)相應(yīng)操作及界面的切換等。try {mc=new MapCanvas(this)。(3)添加興趣點界面類 AddLandMarkForm :addLandMarkForm。16第四章 詳細(xì)設(shè)計與開發(fā)本章主要介紹本文系統(tǒng)的詳細(xì)設(shè)計與開發(fā),包括一般 MIDlet 程序開發(fā)流程介紹、本文系統(tǒng)各功能模塊的詳細(xì)設(shè)計及功能模塊的相關(guān)流程邏輯介紹。 功能模塊劃分基于需求,我們設(shè)計了相關(guān)的功能去實現(xiàn)我們的需求,下面便是相關(guān)功能模塊的介紹及實現(xiàn)。本文系統(tǒng)開始也打算用 A 算法來實現(xiàn)路徑規(guī)劃,但通過實踐發(fā)現(xiàn)用 A 算法來實現(xiàn),有三大問題:第一、只能對空間固定的局部地區(qū)實現(xiàn)路線規(guī)劃,這樣便限制了軟件的使用范圍;第二、地圖切割道路網(wǎng)標(biāo)記工作量太大,切割成的圖片塊大小也直接影響路線規(guī)劃的最短路徑獲取;第三、顯示的最短路徑存在違背交通規(guī)則的情況。(7)language(可選 ) 傳回結(jié)果時所使用的語言。(4)waypoints(可選)指定一組路標(biāo)。Google Directions API 請求是以下形式的 HTTP 網(wǎng)址: 可能是以下任何一個值:(1)json(建議)表示以 JavaScript 對象表示法 (JSON) 的形式輸出(2)xml 表示以 XML 的形式輸出而 parameter 則為請求的參數(shù),有些參數(shù)必填,而有些參數(shù)則是可選參數(shù)。 h(n)=h*(n) (h*(n)為實際問題的代價值)。 A 算法實現(xiàn)最短路徑搜索A*搜尋算法,俗稱 A 星算法,作為啟發(fā)式搜索算法中的一種,這是一種在圖形平11面上,有多個節(jié)點的路徑,求出最低通過成本的算法。路線可以以文本字符串(如“Chicago, IL”或“Darwin, NSW, Australia”)或緯度/經(jīng)度坐標(biāo)的形式指定起點、目的地和路標(biāo)。下面的圖表顯示了 API MIDLet 使用 GPS 定位方法來定位的結(jié)構(gòu)。由于未來 MIDP 也將會搭載到不同設(shè)備之上,也由于其兼容性高,只要寫過一次程序,就可以在其他移動電話或是移動電話以外的設(shè)備上執(zhí)行;而這也就是它最大的好處。MIDP 是以 SUN、Motorola、Nokia 為中心的 MIDPEG 組織(Mobile Information Profile Expert Group)所制訂出來使用在 CLDC 上的 Profile,是以能使用在移動電話、雙向?qū)χv機(jī)、可無線通信的 PDA(個人數(shù)字助理)上面為前提設(shè)計出來的。基于上述原因,JVM 具有以下幾個特點:(1)小,僅具有 40KB 至 80KB 的靜態(tài)內(nèi)存。第三層是 Mobile Information Device Profile( MIDP )層。當(dāng)然,這些擴(kuò)充類庫也是建立在底層 Configuration 所定義的核心類庫基礎(chǔ)之上的。Configuration 可以當(dāng)作是 J2ME 對于兩種類型嵌入式設(shè)備的規(guī)范。中間層是移動 GIS 的核心部分,系統(tǒng)的服務(wù)器都集中在該層,主要負(fù)責(zé)傳輸和處理空間數(shù)據(jù)信息,執(zhí)行移動 GIS 的功能等。Mobile GIS 是 GIS 從靜態(tài)走向動態(tài)環(huán)境的重大發(fā)展,通過綜合運(yùn)用 GPS 的精確定位技術(shù)、便攜移動設(shè)備(如 PocketPC、手機(jī))、無線 Inter接入和 GIS 的空間信息處理能力,使得系統(tǒng)能夠?qū)崟r地獲取、存儲、更新、處理、分析和顯示地理信息,在現(xiàn)在乃至未來將發(fā)揮出巨大的潛力。該方法不需要手機(jī)連接移動網(wǎng)絡(luò),而依靠手機(jī)自身的 GPS 定位模塊獲取衛(wèi)星信號,從而達(dá)到定位的效果。最常用的是為游客提供定位服務(wù),為初到某地的用戶提供路徑規(guī)劃,為用戶提供公交路線,為用戶提供興趣點的搜索,如酒店旅館等的位置。開發(fā)者只需要將定位的信息以及想獲取到地圖圖片的相關(guān)信息通過 URL 傳遞給 Google 服務(wù)器,便可以得到相應(yīng)的地圖圖片。矢量電子地圖可以隨意縮放,縮放過程中不會失真,可以進(jìn)行全局或者局部校正,更新起來也很方便。這種模式使得手機(jī)客戶端的壓力大大減小,不必再存儲龐大的地圖數(shù)據(jù)信息,可以將手機(jī)的數(shù)據(jù)處理能力用來提升用戶體2驗等更重要的方面。人們的社會活動等也越來越希望突破時間和空間的約束,這使得手機(jī)上 GPS 應(yīng)用的必然性。J2ME 技術(shù)目前最流行的就是在制作手機(jī)應(yīng)用程序方面,JAVA 手機(jī)的出現(xiàn)使得這一技術(shù)更有它的用武之地,發(fā)揮著靈活、輕便、快捷的作用。【關(guān)鍵詞】 J2ME,MIDP,GPS,JSR179,Google 靜態(tài)地圖 IIAbstract This paper system will be in J2ME flat, we use the JSR179 positioning and J2ME setups static map realize positioning, Google added interest points, route planning and offline map location etc. Function. In the mobile phone users to locate functional and J2ME hardware support for the case, as long as the users pay a small fee to the GPRS flow can be user location positioning, route planning etc. Function. In order to save the user of GPRS flow, design also developed offline map specific model, not connected to the Inter users can still for the GPS positioning.This paper will be divided into seven chapter was introduced. The first chapter the introduction, this paper introduces the background of the subject research, mobile GPS navigation development present situation and the main research topic in meaning and significance。另外為了節(jié)省用戶的 GPRS 流量,設(shè)計中也特定開發(fā)了離線地圖模式,在不聯(lián)網(wǎng)的情況下,用戶依然可以進(jìn)行 GPS 定位。目前在大部分地區(qū),幾乎人手一部或幾部手機(jī),正是由于手機(jī)的高普及率,才使得無線移動商務(wù)迅速普及和發(fā)展。隨著移動通信技術(shù)的發(fā)展,我國移動用戶數(shù)量也在快速增長。當(dāng)然本地模式的好處就是不產(chǎn)生 GPRS 流量費(fèi),可以說是絕對的免費(fèi)了。這兩種實現(xiàn)各有優(yōu)缺點,柵格電子地圖生成比較方便,圖像比較細(xì)致,和人們?nèi)粘J褂玫牡貓D類似,容易被用戶接受。 課題主要內(nèi)容和意義目前市場上手機(jī) GPS 導(dǎo)航較為成熟的系統(tǒng)都為本地模式的 GPS 導(dǎo)航系統(tǒng),將地圖數(shù)據(jù)信息下載到用戶的手機(jī)自身存儲空間,具有響應(yīng)快速的優(yōu)點,但卻過于消耗手機(jī)的存儲空間,又手機(jī)處理能力有限,使得做出來的導(dǎo)航軟件不能夠處理過于復(fù)雜的分析和服務(wù),應(yīng)用十分受限。 基于位置的服務(wù)基于位置的服務(wù)(Location Based Service,LBS),它是通過電信移動運(yùn)營商的無線電通訊網(wǎng)絡(luò)(如 GSM 網(wǎng)、CDMA 網(wǎng))或外部定位方式(如 GPS)獲取移動終端用戶的位置信息( 地理坐標(biāo),或大地坐標(biāo)),在 GIS(Geographic Information System,地理信息系統(tǒng))平臺的支持下,為用戶提供相應(yīng)服務(wù)的一種增值業(yè)務(wù)。LBS 為物流、安全、交通、城市規(guī)劃等傳統(tǒng)產(chǎn)生提供了精確的位置信息服務(wù),在商業(yè)上的應(yīng)用也越來越重要,發(fā)展前景很光明。原理圖如下:圖 22 基站定位原理圖AGPS 輔助定位利用峰窩/無線網(wǎng)絡(luò)提供輔助信息來幫助衛(wèi)星系統(tǒng)作為參考點進(jìn)行定位,并不對位置信息進(jìn)行計算,而是將 GPS 的位置信息數(shù)據(jù)傳給移動通信網(wǎng)絡(luò),由6網(wǎng)絡(luò)的定位服務(wù)器進(jìn)行位置計算,同時移動網(wǎng)絡(luò)按照 GPS 的參考網(wǎng)絡(luò)所產(chǎn)生的輔助數(shù)據(jù),如差分校正數(shù)據(jù)、衛(wèi)星運(yùn)行狀態(tài)等傳遞給手機(jī),并從數(shù)據(jù)庫中查出手機(jī)的近似位置和小區(qū)所在的位置信息傳給手機(jī),并從數(shù)據(jù)庫中查出手機(jī)的近似位置和小區(qū)所在的位置信息傳給手機(jī),這時手機(jī)可以很快捕捉到 GPS 信號,這樣首次捕獲時間將大大減小,一般僅需幾秒的時間。表現(xiàn)層是客戶端的承載層,直接與用戶打交道,是向用戶提供 GIS 服務(wù)的窗口。因此,J2ME 先將所有的嵌入式設(shè)備大體上分為兩種:一種是運(yùn)算能力有限且電力供應(yīng)也有限的嵌入式設(shè)備(如 PDA 和手機(jī)) ;另一種是運(yùn)算能力相對較佳并在電力供應(yīng)上相對比較充足的嵌入式裝置(如冷氣機(jī)、電冰箱和機(jī)頂盒)。Profile 是架構(gòu)在 Configuration 之上的規(guī)范。J2ME 架構(gòu)由 3 個軟件層組成:第一層是包括在內(nèi)的配置層,這個層次直接與原生8操作系統(tǒng)進(jìn)行交互。它是專門為那些受資源限制,只有幾百 K 字節(jié)內(nèi)存的微型設(shè)備設(shè)計的。它同時也包括一個供用戶下載新應(yīng)用到終端設(shè)備的標(biāo)準(zhǔn)運(yùn)行環(huán)境。也就是說,以 MIDP 為基準(zhǔn)所制作出來的應(yīng)用程序,也將可以在流通于市面上的移動電話上執(zhí)行。另外,定位 API 是很多易用的類和接口的壓縮包,其在開發(fā)移動應(yīng)用程序的時候具有以下三個特點:(1)獲取設(shè)備的位置信息(2)創(chuàng)建、編輯、存儲、銷毀陸標(biāo)(3)獲取設(shè)備的定位定位 API 首先需要連接一個定位方法,利用定位方法產(chǎn)生定位對象,每種定位方法都不一樣。您可以為每個請求指定地圖的位置、圖像的大小、縮放的級別、地圖的類型以及可選擇標(biāo)記在地圖各個位置上的放置。如果可能,系統(tǒng)會使用此處介紹的服務(wù)提前計算已知地址,并將結(jié)果存儲在您自己設(shè)計的臨時緩存中。一種具有 f(n)=g(n)+h(n)策略的啟發(fā)式算法能成為 A*算法的充分條件是: 搜索樹上存在著從起始點到終點的最優(yōu)路徑。對一個好的 h(n)的評價是:h(n) 在 h*(n)的下界之下,并且盡量接近 h*(n)。(2)destination(必填) 希望根據(jù)其計算路線的地址或文本緯度/ 經(jīng)度值。(6)avoid(可選 )指示計算的路線應(yīng)避開指定的地圖項。(8)sensor(必填) 指示路線請求是否來自裝有位置傳感器的設(shè)備。在瀏覽地圖的過程中,用戶會記錄他們感興趣的一些點,例如,餐館、旅游景點等。(6)路徑規(guī)劃:用戶可以選擇地圖上兩點(需在道路上)后,能夠?qū)牲c間規(guī)劃好的15路徑顯示在地圖上。181.設(shè)計:分為引用和方法兩塊分別介紹。其代碼為下: if((offLinemc)){//切換到離線地圖(null)。}else if((scopeQueryLandMarkForm)){//切換到指定地點指定范圍興趣點搜索界面(scopeQueryLandMarkForm)。(4)private double l