【正文】
這里我們用來更新用戶當(dāng)前坐標(biāo)以及判斷用戶當(dāng)前位置是否超越當(dāng)前地圖所能表示的范圍,如果超出則重新獲取地圖。24圖 45 聯(lián)網(wǎng)地圖界面 圖 46 聯(lián)網(wǎng)地圖界面菜單 離線地圖類實現(xiàn)了地圖的離線定位,功能基本上和聯(lián)網(wǎng)相似通過從聯(lián)網(wǎng)狀態(tài)獲得的一張地圖,以及地圖左上角、右下角坐標(biāo)來對用戶當(dāng)前位置進(jìn)行定位。 } =new Coordinates(lat+latT,lonlonT,310)。②主要方法介紹:(1)public void drawOffScreen(){}:用來將地圖和地圖上所有元素繪制到離屏畫布上,將所有元素繪制完后,再將離屏畫布繪制到手機(jī)屏幕上便可消除閃爍。}//添加位置監(jiān)聽器(this, 1, 1, 1)。}19else if((planLandThreadForm)){//切換到路線規(guī)劃界面(planLandThreadForm)。①支持有所有界面類的引用:(1)聯(lián)網(wǎng)地圖類 MapCanvas:mc。以后用戶就可以通過這些記錄直接定位到這些點所在的地圖位置。目前,此參數(shù)支持以下兩個參數(shù):tolls 指示計算的路線應(yīng)避開收費公路/橋梁。 Google Directions API 提供服務(wù)Google Directions API 主要服務(wù)就是為了計算路線。 路徑規(guī)劃的技術(shù)選擇路徑規(guī)劃在導(dǎo)航系統(tǒng)軟件中是必不可少的一部分,主要用于為用戶提供起始位置到目的地的最優(yōu)路徑或最短路徑。比如,各種方法所需要的時間都不一樣,每種方法的精確度也不一樣。運行在 MIDP 下的小應(yīng)用程序叫做 MIDlet 移動設(shè)備小應(yīng)用程序,它與 Applet 類似。配置層還處理 profile 和 JVM 之間的交互。Java 引入了一個 Configuration 的概念,把上述運算功能有限、電力有限的嵌入式設(shè)備定義在 CLDC 規(guī)范中,而將另一種裝置定義在 CDC(Connected Device Configuration,連接設(shè)備配置) 規(guī)范中。不需像 GPS 的首次捕獲時間可能要 23 分鐘時間,而精度也僅為幾米高于 GPS 的精度。 基于位置服務(wù)的應(yīng)用范圍基于位置的服務(wù)(Location Based Service,LBS)的應(yīng)用非常廣泛,可以滲透到任何行業(yè),為任何群體提供服務(wù)。但是,柵格電子地圖數(shù)據(jù)量比較大,存儲不方便,放大過程中會產(chǎn)生失真,數(shù)據(jù)不是很準(zhǔn)確,很難進(jìn)行全局或者局部校正,更新起來也比較費事。2022 年我國的手機(jī)用戶約為 億,而根據(jù)中國三大移動運營商公布的數(shù)據(jù)顯示,截至 2022 年 8 月底,中國手機(jī)用戶總數(shù)卻已達(dá) 億戶,手機(jī)上網(wǎng)用戶已超 3 億戶。本篇論文將分為七章進(jìn)行介紹。隨著 JAVA 技術(shù)的不斷更新與提高,特別是J2ME 技術(shù)的出現(xiàn),使得手機(jī)應(yīng)用程序越來越成為人們關(guān)注的焦點??蛻舳?服務(wù)器模式則是將地圖信息的相關(guān)數(shù)據(jù)保存在服務(wù)器端,手機(jī)通過 HTTP等協(xié)議請求服務(wù)器來獲取相關(guān)的地圖數(shù)據(jù)信息。Google 公司推出的 Google 靜態(tài)地圖 API 為手機(jī)開發(fā)者提供了通過 HTTP 請求便能得到想要地圖的服務(wù)。5GPS 定位是借助全球定位系統(tǒng)的衛(wèi)星體系來實現(xiàn)的。數(shù)據(jù)層是移動 GIS 各類數(shù)據(jù)的集散地,確保 GIS 功能實現(xiàn)7的基礎(chǔ)和支撐。因此,Profile 中定義了與特定嵌入式設(shè)備非常相關(guān)的擴(kuò)充類庫。它的目標(biāo)是為資源受限制的 Palm(是目前較為流行的掌上電腦操作系統(tǒng))可連接的電子設(shè)備,實現(xiàn)一個 java 虛擬機(jī)。在不使用各電信商的擴(kuò)展 API 的時候,制作給移動電話用的 MIDlet 也將可以使用在 Palm OS 上面。Google Directions API,是一種使用 HTTP 請求計算多個位置間路線的服務(wù)。 所有結(jié)點的子結(jié)點的搜索代價值0。在出行方式中指定有效的值。 路線規(guī)劃最終方法選擇啟發(fā)式 A 算法可以高效快捷地尋找出起點到終點的最短路徑,用于空間固定的局部地區(qū)地圖的路徑搜索是個不錯的選擇。(8)指定地點范圍內(nèi)興趣點的搜索:能夠?qū)χ付ǖ攸c或當(dāng)前位置的指定范圍內(nèi)興趣點進(jìn)行搜索。}else if((mc)){//切換到聯(lián)網(wǎng)地圖(null)。(6)private LocationProider lp: lp 用來提供定位服務(wù),聯(lián)網(wǎng)地圖類初始化時,需要初始化 lp,并為其添加位置監(jiān)聽器,這里我們讓聯(lián)網(wǎng)地圖類實現(xiàn) LocationListener 接口,這樣便可以在用戶位置發(fā)生變化時,直接在界面上重繪用戶在地圖上的位置。(9)private Vector vector:vector 盛放通過 Google Directions API 規(guī)劃好的路徑上的拐點。lon=()。 lonT=lonT/2。25(7)LocationProvider lp:位置服務(wù)商,位置更新、靠近事件的監(jiān)聽必須的。i++。(5)private Vector myLandMarks:用于盛放所有的興趣點。izoom16。// 獲當(dāng)前坐標(biāo),更新地圖22Coordinates coordinates=()。} catch (LocationException e) {21()。(4)private double lat,lon:記錄當(dāng)前人物位置的緯度和經(jīng)度,人物位置的不斷變化,會被 LocationListener 事件監(jiān)聽到,這樣就可以實時地更新人物的經(jīng)緯度,從而進(jìn)行實時定位。其代碼為下: if((offLinemc)){//切換到離線地圖(null)。(6)路徑規(guī)劃:用戶可以選擇地圖上兩點(需在道路上)后,能夠?qū)牲c間規(guī)劃好的15路徑顯示在地圖上。(8)sensor(必填) 指示路線請求是否來自裝有位置傳感器的設(shè)備。(2)destination(必填) 希望根據(jù)其計算路線的地址或文本緯度/ 經(jīng)度值。一種具有 f(n)=g(n)+h(n)策略的啟發(fā)式算法能成為 A*算法的充分條件是: 搜索樹上存在著從起始點到終點的最優(yōu)路徑。您可以為每個請求指定地圖的位置、圖像的大小、縮放的級別、地圖的類型以及可選擇標(biāo)記在地圖各個位置上的放置。也就是說,以 MIDP 為基準(zhǔn)所制作出來的應(yīng)用程序,也將可以在流通于市面上的移動電話上執(zhí)行。它是專門為那些受資源限制,只有幾百 K 字節(jié)內(nèi)存的微型設(shè)備設(shè)計的。Profile 是架構(gòu)在 Configuration 之上的規(guī)范。表現(xiàn)層是客戶端的承載層,直接與用戶打交道,是向用戶提供 GIS 服務(wù)的窗口。LBS 為物流、安全、交通、城市規(guī)劃等傳統(tǒng)產(chǎn)生提供了精確的位置信息服務(wù),在商業(yè)上的應(yīng)用也越來越重要,發(fā)展前景很光明。 課題主要內(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)用十分受限。當(dāng)然本地模式的好處就是不產(chǎn)生 GPRS 流量費,可以說是絕對的免費了。目前在大部分地區(qū),幾乎人手一部或幾部手機(jī),正是由于手機(jī)的高普及率,才使得無線移動商務(wù)迅速普及和發(fā)展?!娟P(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。人們的社會活動等也越來越希望突破時間和空間的約束,這使得手機(jī)上 GPS 應(yīng)用的必然性。矢量電子地圖可以隨意縮放,縮放過程中不會失真,可以進(jìn)行全局或者局部校正,更新起來也很方便。最常用的是為游客提供定位服務(wù),為初到某地的用戶提供路徑規(guī)劃,為用戶提供公交路線,為用戶提供興趣點的搜索,如酒店旅館等的位置。Mobile GIS 是 GIS 從靜態(tài)走向動態(tài)環(huán)境的重大發(fā)展,通過綜合運用 GPS 的精確定位技術(shù)、便攜移動設(shè)備(如 PocketPC、手機(jī))、無線 Inter接入和 GIS 的空間信息處理能力,使得系統(tǒng)能夠?qū)崟r地獲取、存儲、更新、處理、分析和顯示地理信息,在現(xiàn)在乃至未來將發(fā)揮出巨大的潛力。Configuration 可以當(dāng)作是 J2ME 對于兩種類型嵌入式設(shè)備的規(guī)范。第三層是 Mobile Information Device Profile( MIDP )層。MIDP 是以 SUN、Motorola、Nokia 為中心的 MIDPEG 組織(Mobile Information Profile Expert Group)所制訂出來使用在 CLDC 上的 Profile,是以能使用在移動電話、雙向?qū)χv機(jī)、可無線通信的 PDA(個人數(shù)字助理)上面為前提設(shè)計出來的。下面的圖表顯示了 API MIDLet 使用 GPS 定位方法來定位的結(jié)構(gòu)。 A 算法實現(xiàn)最短路徑搜索A*搜尋算法,俗稱 A 星算法,作為啟發(fā)式搜索算法中的一種,這是一種在圖形平11面上,有多個節(jié)點的路徑,求出最低通過成本的算法。Google Directions API 請求是以下形式的 HTTP 網(wǎng)址: 可能是以下任何一個值:(1)json(建議)表示以 JavaScript 對象表示法 (JSON) 的形式輸出(2)xml 表示以 XML 的形式輸出而 parameter 則為請求的參數(shù),有些參數(shù)必填,而有些參數(shù)則是可選參數(shù)。(7)language(可選 ) 傳回結(jié)果時所使用的語言。 功能模塊劃分基于需求,我們設(shè)計了相關(guān)的功能去實現(xiàn)我們的需求,下面便是相關(guān)功能模塊的介紹及實現(xiàn)。(3)添加興趣點界面類 AddLandMarkForm :addLandMarkForm。以下為具體流程邏輯圖:MyGPSMidlet界面切換類changForm方法MapCanvas聯(lián)網(wǎng)地圖OffLineMapCanvas離線地圖AddLandMarkForm興趣點添加ScopeQueryLandMarkForm指定地點范圍興趣點搜索QueryLandMarkForm興趣點查詢刪除鎖定PlanLandThreadForm路線規(guī)劃圖 43 界面切換類流程邏輯 聯(lián)網(wǎng)地圖類聯(lián)網(wǎng)地圖類()程序運行的主要界面,完成了地圖上各元素的獲取、繪制等,實現(xiàn)了用戶位置的實時定位、對用戶位置與興趣點(路標(biāo))相對位置的監(jiān)聽、通過 Command 命令實現(xiàn)相應(yīng)操作及界面的切換等。初始化聯(lián)網(wǎng)地圖時,需要初始化landMarks,并且要為每個興趣點添加靠近監(jiān)聽事件,具體代碼封裝在 public void addProximity()里。有則進(jìn)行地圖更新,并且在執(zhí)行更新地圖后刪除 m_cmd 里面的元素;沒有則線程處于等待狀態(tài)。 } else if(zoom==16){ =new Coordinates(lat+latTemp,lonlonTemp,310)。因為離線地圖類與聯(lián)網(wǎng)地圖類大部分功能相同,所以相同的部分,下面就不再做介紹。啟動聯(lián)網(wǎng)地圖或離線地圖時,同時啟動興趣點靠近事件添加線程、改變靠近動畫幀的線程,這樣便可不斷地對發(fā)生過靠近事件的興趣點再次添加靠近監(jiān)聽事件(因為路標(biāo)發(fā)生過靠近事件后,靠近監(jiān)聽事件將不再有效) 、對靠近動畫的幀進(jìn)行改變。(11)private Coordinates beginCoordinates,endCoordinates:路線規(guī)劃起點和終點。用戶也可以切換地圖顯示的模式,以及通過按鍵事件來實現(xiàn)地圖的平移、放大、縮小、路線規(guī)劃等相關(guān)操作。i++){ latT=latT*2。(12)private Coordinates beginCoordinates,endCoordinates:用于路徑規(guī)劃的起點和終點。try {