freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于j2me平臺(tái)的gps導(dǎo)航系統(tǒng)畢業(yè)設(shè)計(jì)論文-資料下載頁(yè)

2025-01-16 10:47本頁(yè)面
  

【正文】 MarkForm )以及路線(xiàn)規(guī)劃(PlanLandThreadForm )相關(guān)界面。以下為具體流程邏輯圖:MyGPSMidlet界面切換類(lèi)changForm方法MapCanvas聯(lián)網(wǎng)地圖OffLineMapCanvas離線(xiàn)地圖AddLandMarkForm興趣點(diǎn)添加ScopeQueryLandMarkForm指定地點(diǎn)范圍興趣點(diǎn)搜索QueryLandMarkForm興趣點(diǎn)查詢(xún)刪除鎖定PlanLandThreadForm路線(xiàn)規(guī)劃圖 43 界面切換類(lèi)流程邏輯 聯(lián)網(wǎng)地圖類(lèi)聯(lián)網(wǎng)地圖類(lèi)()程序運(yùn)行的主要界面,完成了地圖上各元素的獲取、繪制等,實(shí)現(xiàn)了用戶(hù)位置的實(shí)時(shí)定位、對(duì)用戶(hù)位置與興趣點(diǎn)(路標(biāo))相對(duì)位置的監(jiān)聽(tīng)、通過(guò) Command 命令實(shí)現(xiàn)相應(yīng)操作及界面的切換等。1.設(shè)計(jì):分為成員變量和方法兩塊分別介紹。①主要成員變量介紹:(1)界面切換類(lèi) MyGPSMidlet(parent):持有界面切換類(lèi)引用,以便 Command 命令能夠切換到對(duì)應(yīng)的界面。20(2)Google Map API 操作類(lèi) GoogleMaps(gMap):GoogleMaps 類(lèi)封裝了 Google 靜態(tài)地圖獲取、路線(xiàn)規(guī)劃相關(guān)方法,有該類(lèi)對(duì)象的一個(gè)引用,方便地圖的獲取及路線(xiàn)規(guī)劃。(3)private String maptype:用于改變獲取地圖的類(lèi)型,地圖類(lèi)型有 roadmap 標(biāo)準(zhǔn)、mobile 移動(dòng)設(shè)備、statellite 衛(wèi)星圖像、hybrid 混合圖像、terrain 自然地形。(4)private double lat,lon:記錄當(dāng)前人物位置的緯度和經(jīng)度,人物位置的不斷變化,會(huì)被 LocationListener 事件監(jiān)聽(tīng)到,這樣就可以實(shí)時(shí)地更新人物的經(jīng)緯度,從而進(jìn)行實(shí)時(shí)定位。(5)Vector m_cmd:每次用戶(hù)位置變化時(shí),向 m_cmd 里添加一個(gè)元素,讓聯(lián)網(wǎng)地圖類(lèi)實(shí)現(xiàn) Runnable 接口,在其 run 方法里通過(guò)檢測(cè) m_cmd 里元素的個(gè)數(shù)來(lái)判斷是否需要更新地圖,更新完地圖后刪除 m_cmd 里面的元素。(6)private LocationProider lp: lp 用來(lái)提供定位服務(wù),聯(lián)網(wǎng)地圖類(lèi)初始化時(shí),需要初始化 lp,并為其添加位置監(jiān)聽(tīng)器,這里我們讓聯(lián)網(wǎng)地圖類(lèi)實(shí)現(xiàn) LocationListener 接口,這樣便可以在用戶(hù)位置發(fā)生變化時(shí),直接在界面上重繪用戶(hù)在地圖上的位置。lp 初始化代碼如下://初始化位置供應(yīng)商Criteria c=new Criteria()。(500)。(500)。()。try {lp=(c)。} catch (LocationException e) {().setCurrent(new Form(lp錯(cuò)誤))。}//添加位置監(jiān)聽(tīng)器(this, 1, 1, 1)。(7)private Vector landMarks:landMarks 用于盛放路標(biāo)庫(kù)里的所有興趣點(diǎn)(路標(biāo)),以便在地圖上畫(huà)出用戶(hù)添加的所有興趣點(diǎn)。初始化聯(lián)網(wǎng)地圖時(shí),需要初始化landMarks,并且要為每個(gè)興趣點(diǎn)添加靠近監(jiān)聽(tīng)事件,具體代碼封裝在 public void addProximity()里。代碼如下: //遍歷到每一個(gè)興趣點(diǎn),為其添加靠近事件監(jiān)聽(tīng)器 for(int i=0。i()。i++){ MyLandMark landMark=(MyLandMark)(i)。 try {(landMark, (), R)。} catch (LocationException e) {21()。} } (8)private Landmark lastLandMark:記錄最新發(fā)生靠近事件的興趣點(diǎn) (路標(biāo)),用來(lái)提示用戶(hù)正接近哪個(gè)興趣點(diǎn)。(9)private Vector vector:vector 盛放通過(guò) Google Directions API 規(guī)劃好的路徑上的拐點(diǎn)。通過(guò)在自由瀏覽狀態(tài)下或路線(xiàn)規(guī)劃界面,獲取路徑規(guī)劃的起點(diǎn)和終點(diǎn),然后將起點(diǎn)和終點(diǎn)經(jīng)緯度通過(guò) HTTP 協(xié)議發(fā)送給 Google Directions API,將得到規(guī)劃好路徑上所有拐點(diǎn)經(jīng)緯度。(10)private Coordinates topLeft,downRight:當(dāng)前地圖的左上角、右下角經(jīng)緯度坐標(biāo)。有了左上角、右下角經(jīng)緯度坐標(biāo),便可以確定地圖上所有元素,如興趣點(diǎn)、用戶(hù)、靠近動(dòng)畫(huà)、規(guī)劃好的路線(xiàn),與地圖的相對(duì)位置關(guān)系,這樣便可輕松地將它們繪制到地圖上。(11)private double latTemp, lonTemp:當(dāng)前一半地圖所跨的緯度、經(jīng)度 ,用于確定地圖上元素與地圖的相對(duì)位置關(guān)系。(12)private Coordinates beginCoordinates,endCoordinates:用于路徑規(guī)劃的起點(diǎn)和終點(diǎn)。(13 )private Image offScreen 和 public Graphics offg:這兩個(gè)元素是雙緩沖的離屏畫(huà)布和畫(huà)筆,用于消除界面上因元素過(guò)多而產(chǎn)生閃屏。②主要方法介紹:(1)public void drawOffScreen(){}:用來(lái)將地圖和地圖上所有元素繪制到離屏畫(huà)布上,將所有元素繪制完后,再將離屏畫(huà)布繪制到手機(jī)屏幕上便可消除閃爍。(2)protected synchronized void getURL(){}、public void run(){}:getURL()方法只向m_cmd 里添加一個(gè)元素并通知當(dāng)前程序中處于等待狀態(tài)的線(xiàn)程運(yùn)行;run()是實(shí)現(xiàn)Runnable 接口必需實(shí)現(xiàn)的方法,我們用它來(lái)通過(guò)判斷 m_cmd 里是否有元素,決定是否要進(jìn)行地圖更新。有則進(jìn)行地圖更新,并且在執(zhí)行更新地圖后刪除 m_cmd 里面的元素;沒(méi)有則線(xiàn)程處于等待狀態(tài)。(3)public void locationUpdated(LocationProvider lp, Location lc):該方法是實(shí)現(xiàn)LocationListener 接口必需實(shí)現(xiàn)的方法,用于監(jiān)聽(tīng)到用戶(hù)位置變化所執(zhí)行的操作。用它來(lái)更新用戶(hù)當(dāng)前經(jīng)緯度、地圖左上角和右下角經(jīng)緯度、地圖當(dāng)前所跨經(jīng)緯度。其具體代碼如下://保存舊坐標(biāo)oldlon=lon。oldlat=lat。// 獲當(dāng)前坐標(biāo),更新地圖22Coordinates coordinates=()。lat=()。lon=()。//位置變化,跟根地圖所在空間以及當(dāng)前坐標(biāo)計(jì)算地圖左上角、右下角坐標(biāo)if(zoom16){ double latT=latTemp。 double lonT=lonTemp。 for(int i=0。i16zoom。i++){ latT=latT*2。 lonT=lonT*2。 } =new Coordinates(lat+latT,lonlonT,310)。 =new Coordinates(latlatT,lon+lonT,310)。 } else if(zoom==16){ =new Coordinates(lat+latTemp,lonlonTemp,310)。 =new Coordinates(latlatTemp,lon+lonTemp,310)。 } else{ double latT=latTemp。 double lonT=lonTemp。 for(int i=0。izoom16。i++){ latT=latT/2。 lonT=lonT/2。 } =new Coordinates(lat+latT,lonlonT,310)。 =new Coordinates(latlatT,lon+lonT,310)。 }// 更新完當(dāng)前坐標(biāo),以及左上角、右下角坐標(biāo)后重新獲取地圖getURL()。2.流程邏輯:聯(lián)網(wǎng)地圖類(lèi)流程邏輯較為復(fù)雜,和離線(xiàn)地圖類(lèi)相當(dāng)于整個(gè)程序的中樞系統(tǒng),切換到聯(lián)網(wǎng)地圖界面時(shí),會(huì)初始化相關(guān)變量、起動(dòng)各監(jiān)聽(tīng)器并獲取地圖繪制地圖,此后便可通過(guò)界面切換類(lèi)切換到“離線(xiàn)地圖界面” 、 “添加興趣點(diǎn)界面” 、 “查詢(xún)刪除鎖定興趣點(diǎn)界面” 、 “指定地點(diǎn)范圍興趣點(diǎn)搜索界面” 、 “路線(xiàn)規(guī)劃界面” ;用戶(hù)坐標(biāo)改變時(shí),也會(huì)更新用戶(hù)當(dāng)前位置、地圖左上角和右下角坐標(biāo)并重新繪制地圖,從而實(shí)現(xiàn)實(shí)時(shí)定位。用戶(hù)也可以切換地圖顯示的模式,以及通過(guò)按鍵事件來(lái)實(shí)現(xiàn)地圖的平移、放大、縮小、路線(xiàn)規(guī)劃等相關(guān)操作。具體流程邏輯圖如 44 所示:23聯(lián)網(wǎng)地圖界面執(zhí)行構(gòu)造方法,初始化變量,啟動(dòng)各監(jiān)聽(tīng)器,繪制地圖位置變化更新用戶(hù)當(dāng)前位置、地圖左上右下坐標(biāo),重新獲取地圖靠近事件發(fā)生繪制靠近動(dòng)畫(huà)用戶(hù)可以左右平移、放大、縮小地圖自由瀏覽‘OK’or’5’ 選擇起點(diǎn)、終點(diǎn)進(jìn)行路線(xiàn)規(guī)劃切換模式改變地圖模式指定地點(diǎn)范圍興趣點(diǎn)搜索切換到“指定地點(diǎn)指定范圍內(nèi)興趣點(diǎn)搜索”界面切換到“興趣點(diǎn)添加”界面添加興趣點(diǎn)切換到“查詢(xún)、刪除、鎖定興趣點(diǎn)”界面查詢(xún)、刪除、鎖定興趣點(diǎn)獲取離線(xiàn)地圖,切換到“離線(xiàn)地圖”界面切換到離線(xiàn)模式切換到“路線(xiàn)規(guī)劃”界面路線(xiàn)規(guī)劃圖 44 聯(lián)網(wǎng)地圖類(lèi)流程邏輯3.界面圖:本文系統(tǒng)在蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院內(nèi)測(cè)試得到的聯(lián)網(wǎng)地圖界面圖如下圖 4圖 46,界面上部顯示用戶(hù)當(dāng)前經(jīng)緯度信息,界面下部顯示用戶(hù)與最近靠近興趣點(diǎn)之間的距離。24圖 45 聯(lián)網(wǎng)地圖界面 圖 46 聯(lián)網(wǎng)地圖界面菜單 離線(xiàn)地圖類(lèi)實(shí)現(xiàn)了地圖的離線(xiàn)定位,功能基本上和聯(lián)網(wǎng)相似通過(guò)從聯(lián)網(wǎng)狀態(tài)獲得的一張地圖,以及地圖左上角、右下角坐標(biāo)來(lái)對(duì)用戶(hù)當(dāng)前位置進(jìn)行定位。離線(xiàn)與聯(lián)網(wǎng)主要的區(qū)別就是地圖,離線(xiàn)的地圖只有一張,是用戶(hù)聯(lián)網(wǎng)時(shí)根據(jù)用戶(hù)當(dāng)前位置獲取的,獲取的地圖的同時(shí),根據(jù)地圖的長(zhǎng)、寬、空間來(lái)推算出地圖左上角和右下角的坐標(biāo),那么興趣點(diǎn)、路線(xiàn)規(guī)劃的最短路徑等便可根據(jù)這兩坐標(biāo)而畫(huà)出在離線(xiàn)地圖上的相對(duì)位置。因?yàn)殡x線(xiàn)地圖類(lèi)與聯(lián)網(wǎng)地圖類(lèi)大部分功能相同,所以相同的部分,下面就不再做介紹。1.設(shè)計(jì)①主要成員變量介紹:(1)private MyGPSMidlet parent:界面切換類(lèi),用于切換到聯(lián)網(wǎng)或其它界面。(2)Coordinates LeftTop,RightBottom:地圖的左上角、右下角經(jīng)緯坐標(biāo),這兩個(gè)坐標(biāo)是其它坐標(biāo)的參考對(duì)象,興趣點(diǎn)、用戶(hù)當(dāng)前坐標(biāo)等。(3)private Image map:離線(xiàn)地圖。(4)private Visitor visitor:當(dāng)前用戶(hù)。(5)private Vector myLandMarks:用于盛放所有的興趣點(diǎn)。(6)private Image image:靠近動(dòng)畫(huà)的一幀圖片,用一個(gè)線(xiàn)程來(lái)不斷變更圖片的幀。25(7)LocationProvider lp:位置服務(wù)商,位置更新、靠近事件的監(jiān)聽(tīng)必須的。(8)private static int STATE=0:自由瀏覽狀態(tài)下,記錄當(dāng)前操作的狀態(tài),0 表示未選中起始點(diǎn)和終點(diǎn),1 表示選中的起始點(diǎn),2 表示選中了終點(diǎn)。(9)private static int ISFREE=0。記錄當(dāng)前是否為自由瀏覽狀態(tài),0 表示非自由瀏覽,1表示自由瀏覽。(10)private double lat,lon:記錄當(dāng)前用戶(hù)的緯度和經(jīng)度,這兩個(gè)變量在非自由瀏覽狀態(tài)下沒(méi)有什么作用,但自由瀏覽時(shí)則通過(guò)按鍵事件改變它們,相當(dāng)于當(dāng)前用戶(hù)的位置發(fā)生變生,從而達(dá)到自由瀏覽的效果。(11)private Coordinates beginCoordinates,endCoordinates:路線(xiàn)規(guī)劃起點(diǎn)和終點(diǎn)。②主要方法介紹:(1)public void locationUpdated(LocationProvider lp,final Location lc):實(shí)現(xiàn)了LocationListener 接口必須實(shí)現(xiàn)的方法, 用于監(jiān)聽(tīng)到用戶(hù)位置變化所執(zhí)行的操作 。這里我們用來(lái)更新用戶(hù)當(dāng)前坐標(biāo)以及判斷用戶(hù)當(dāng)前位置是否超越當(dāng)前地圖所能表示的范圍,如果超出則重新獲取地圖。262.流程邏輯:離線(xiàn)地圖類(lèi)流程邏輯如圖 47 所示: 離線(xiàn)界面執(zhí)行構(gòu)造方法,初始化變量,啟動(dòng)各監(jiān)聽(tīng)器,繪制地圖位置變化更新用戶(hù)當(dāng)前位置,重繪地圖靠近事件發(fā)生繪制靠近動(dòng)畫(huà)用戶(hù)可以左右平移地圖自由瀏覽‘OK’or’5’ 選擇起點(diǎn)、終點(diǎn)進(jìn)行路線(xiàn)規(guī)劃范圍特定興趣點(diǎn)搜索切換到“指定地點(diǎn)指定范圍內(nèi)興趣點(diǎn)搜索”界面切換到“興趣點(diǎn)添加”界面添加興趣點(diǎn) 切換到“查詢(xún)、刪除、鎖定興趣點(diǎn)”界面查詢(xún)、刪除、鎖定興趣點(diǎn)連接網(wǎng)絡(luò),切換到“聯(lián)網(wǎng)地圖”界面聯(lián)網(wǎng)地圖路線(xiàn)規(guī)劃切換到“查詢(xún)、刪除、鎖定興趣點(diǎn)”界面圖 47 離線(xiàn)地圖類(lèi)流程邏輯 各線(xiàn)程類(lèi)對(duì)興趣點(diǎn)添加靠近事件、不停改變靠近動(dòng)畫(huà)的幀。啟動(dòng)聯(lián)網(wǎng)地圖或離線(xiàn)地圖時(shí),同時(shí)啟動(dòng)興趣點(diǎn)靠近事件添加線(xiàn)程、改變靠近動(dòng)畫(huà)幀的線(xiàn)程,這樣便可不斷地對(duì)發(fā)生過(guò)靠近事件的興趣點(diǎn)再次添加靠近監(jiān)聽(tīng)事件(因?yàn)槁窐?biāo)發(fā)生過(guò)靠近事件后,靠近監(jiān)聽(tīng)事件將不再有效) 、對(duì)靠近動(dòng)畫(huà)的幀進(jìn)行改變。1.設(shè)計(jì):線(xiàn)程類(lèi)主要有四個(gè)。(1)AddProximityThread 類(lèi):用于對(duì)聯(lián)網(wǎng)地圖的興趣點(diǎn)進(jìn)行再次添加靠近事件的監(jiān)聽(tīng)器,其 run 方法代碼如下:27//獲取當(dāng)前坐標(biāo)nowCoordinates=(60).getQualifiedCoordinates()。//依次遍歷興趣點(diǎn),對(duì)遠(yuǎn)離的興趣點(diǎn)重新添加監(jiān)聽(tīng)for(int i=0。i()。i+
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1