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

正文內(nèi)容

基于web的多因素旅游線路選擇系統(tǒng)畢業(yè)論文(編輯修改稿)

2025-04-03 10:56 本頁面
 

【文章內(nèi)容簡介】 面設(shè)計原則追求簡潔易用,使用戶一眼看上去就會使用。顏色搭配柔和,美觀大方。 系統(tǒng)的主界面設(shè)計如下: 圖 3 主界面一 圖 4 主界面二 系統(tǒng)實現(xiàn) 加入 MapX 對象 MapXtreme 通過調(diào)用 MapX 啟動運行實例來響應用戶請求,并建立 Session的概念,每個 Session 管理著一個或多個運行實例。當用戶提出申請時, Session也同時啟動,實例被創(chuàng)建。在系統(tǒng)運行時, MapXtreme 可監(jiān)控 Session 的狀態(tài),如請求數(shù)目、響應時間和服務時間等。 在這里, MapXtreme 為我們提供了很方便的工具,我們可以利用 MapXtreme地圖服務器的 Application Wizard 功能發(fā)布一個基本程序框架,然后再進行修改。 在 MapXtreme ASP 應用中,有一個特殊的文件是 ,用于開始工作時期和聲明對象。當用戶第一次調(diào)用地圖服務功能或者 Session 中斷后重新調(diào)用地圖服務功能都需要執(zhí)行一些 MapXtreme 地圖引擎初始化語句,此類語句共兩部分:配置地圖服務初始參數(shù),啟動地圖服務引擎。這些函數(shù)寫在 的Session_OnStart 事件里面,這個時間相當于 VB 中的 On_Load 事件。 :指定工作期持續(xù)時間,如果用戶不刷新或從應用中請求頁面,則在指定的工作時間自動拋出,所有資源還與服務器。 Session(cMapImageHeight):設(shè)置初始圖像的高度 Session(cMapImageWidth):設(shè)置初始圖像的寬度 Session(cExportFormat):設(shè)置地圖圖像所采用的格式 Session(cExportFileExt): 設(shè)置地圖圖像所采用的擴展名 strDirname = /mapimage:指定產(chǎn)生臨時圖片文件所在的虛擬目錄的名 Session(cAbsMapPath) = (strDirname) amp。 \ :指定存放輸出地圖圖片目錄的虛擬全路徑 Set Session(cMapXObject) = Nothing :設(shè)置代表 MapX 實例對象的系統(tǒng)Session 變量初始化清空。 在做好了前期工作后,我們就可以在我們想要顯示的地圖的頁面中初始化我們的地圖引擎了。在本系統(tǒng)中 是地圖引擎的主頁面,框架程序為我 們很方便地提供了初始化地圖的函數(shù),我們只要在頁面中寫入代碼 bResult = InitMapEngine(OBTAIN_FROM_BROKER, GetServerGroupName())就可以在頁面中將服務器的地圖顯示到頁面上了。 地圖的基本操作 在頁面文件中, 、 和 分別對應基本工具欄、按比例縮放和層控制三個模塊。在 頁面中分別調(diào)用CreateLayerControl、 CreateZoomControl、 CreateToolbar 創(chuàng)建工具欄。當?shù)貓D服務器初始化后,也就是函數(shù) InitMapEngine 的返回值為 true 時,客戶端就可以向服務器端提交地圖處理請求,其模式包括表單提交和 HTTP 附加參數(shù)提交兩種。本系統(tǒng)采用表單提交模式。在工具欄創(chuàng)建的時候,把工具欄包含在表單中,層控制通過按鈕事件提交,而基本工具欄和按比例縮放工具通過鼠標的檢測來做相應的操作,通過 ToolbarHandler、 ZoomControlHandler 方法實現(xiàn)。參數(shù)提交到 頁面去執(zhí)行,根據(jù)提交的參數(shù), ToolbarHandler、 ZoomControlHandler 方法判斷當前什么工具被選中,然后執(zhí)行相應的操作。地圖的整個基本操作主要通過調(diào)用MapXtreme 提供的函數(shù)庫的 AdjustMap 方法來實現(xiàn)的。其函數(shù)原型為: AdjustMap( ByVal MapTool, ByVal nScreenX, ByVal nScreenY)。在這里先把地圖的原始狀態(tài)(圖 5)展示一下,以供讀者在下面的操作應用中作比較。 圖 5 地圖原圖 1. 地圖放大 地圖放大功能可以讓用戶通過點擊地圖,將地圖放大,便于查看地圖的局部區(qū)域。 如(圖 6) 實現(xiàn)的關(guān)鍵代碼: AdjustMap cZoomInTool, (cMapX_MouseUp), (cMapY_MouseUp) 圖 6 放大圖 2. 地圖縮小 地圖縮小功能可以讓用戶通過點擊地圖,將地圖縮小,便于查看地圖的整體信息。如(圖 7) 實現(xiàn)的關(guān)鍵代碼: AdjustMap cZoomOutTool, (cMapX_MouseUp), (cMapY_MouseUp) 圖 7 縮小圖 3. 地圖 居中 地圖居中功能可以讓用戶通過點擊地圖上的某個點,將該點居中顯示出來,便于用戶查看該點的地理位置。如(圖 8)把南平市居中顯示。 實現(xiàn)的關(guān)鍵代碼: AdjustMap cRecenterTool, (cMapX_MouseUp), (cMapY_MouseUp) 圖 8 南平市的居中圖 4. 層顯示與隱藏 層顯示與隱藏功能可以讓用戶通過復選框選擇要顯示或隱藏的層,提交后地圖作響應,把層隱藏或顯示出來。如(圖 9)把交通信息層隱藏。 實現(xiàn)的關(guān)鍵代碼: 通過對 (iMapLayerName).visible 賦值 True or Flase 實現(xiàn) 圖 9 交通信息層的隱藏 地圖對象查詢 在框架頁的 頁面中,我們加入了用于輸入查詢信息的表單,如圖 10。地圖對象查詢要求用戶首先通過單選框選擇要查找的是景點或城縣,然后在輸入框中填寫要查找的名稱。提交后,如果在地圖上找到該點,則在地圖上居中顯示這個景點或城縣。 圖 10 查詢區(qū)域表單 主頁面提交表單給 頁面進行處理,處理的過程總結(jié)成流程圖如 下(圖 11): 圖 11 查詢對象流程圖 地圖信息查看 1.圖元查詢 地圖信息查看指用戶通過“信息工具”(在工具欄中選中信息工具 ),然后點擊地圖,就可彈出新的頁面顯示出地圖該點上的信息。信息工具和工具欄的其他工具一樣,通過表單提交到頁面,只是調(diào)用不同的處理函數(shù),在這里信息工具提交到 進行處理。 地圖信息的查看是建立在地圖圖元搜索的基礎(chǔ)上實現(xiàn)的,只是搜索的范圍擴大到所有層,所以在程序開始時要用一個循環(huán)獲得總的層數(shù)。搜索完所有層,將搜索到的圖元當作結(jié)果返回。這里的流程圖和上例對 象查詢的相似,因此不再累述。搜索圖元的函數(shù)為 InfoPoint()在 里面實現(xiàn)。 在實現(xiàn)了圖元對象的查詢后,調(diào)用 CreateInfoHTML()函數(shù)對搜索到的對象進一步處理。這涉及到數(shù)據(jù)綁定的問題。 2.數(shù)據(jù)綁定 數(shù)據(jù)綁定技術(shù)是將數(shù)據(jù)源中的數(shù)據(jù)加入 MapX 的過程,它將外部數(shù)據(jù)與地圖聯(lián)系起來。目前有許多不同類型的數(shù)據(jù)庫。為了使用這些來自不同類型數(shù)據(jù),都必須使用 MapX 的數(shù)據(jù)綁定功能。 數(shù)據(jù)綁定主要有兩個作用: 1)將屬性數(shù)據(jù)綁定到地圖中,并創(chuàng)建專題圖。 2)以地圖中圖形對象來顯示數(shù)據(jù)。 在 本系統(tǒng)中采用 ACCESS 數(shù)據(jù)庫,所以采用 MapX 與 ADO( Active data objects)數(shù)據(jù)類型進行綁定。 步驟一,數(shù)據(jù)庫的連接 各式各樣的數(shù)據(jù)庫要連進 ASP 就需要二傳手 —— DAO、 ADO、 RDO 等等 在 ASP 可以里面用如下語句實現(xiàn): Provider = Provider=。 Path = Data Source= amp。 () Set conn= () p1=Provideramp。Path P1 sqlstr=select * from 景點信息 where name=39。 amp。 amp。 39。 Set rst1=(sqlstr) 步驟二,圖層和數(shù)據(jù)庫的綁定 部分代碼如下: Set objDS = Session(cMapXObject).DataSets(strItemLayer)’設(shè)置數(shù)據(jù)所在層 objDS =Session(cMapXObject).(miDataSetADO,rst1,objDS, 景點編號 , ,Layer) 方法的各個參數(shù)說明如下: 第一個參數(shù) Type。它可以綁定 13 種的數(shù)據(jù)源,畢業(yè)設(shè)計中選用miDataSetADO,代表 MapX 綁定 ADO 數(shù)據(jù)類型。 第二個參數(shù) SourceData。指定數(shù)據(jù)源。這里選用 rst1。 第三個參數(shù) Name。指定被綁定后的 dataset 的名稱。(可選) 第四個參數(shù) GeoField。指定數(shù)據(jù)源中某個字段作為與圖層匹配的字段。(如果不選, MapX 會自動找一個的) 第五個參數(shù) SecondaryGeofield。指定數(shù)據(jù)源第二匹配字段。如果指定的第一匹配字段中兩個值相等,就靠它來找到對應的對象了。(一般不用) 第六個參數(shù) BindLayer。指定綁定到哪一層。可以用層名,也可以用 Layer對象。(如果不指定, MapX 也會自動幫找一個) 第七個參數(shù) Fields。指定數(shù)據(jù)源中哪些字段參與綁定。 第八個參數(shù) Dynamic。指定是否是動態(tài)綁定。缺省為 false。動態(tài)綁定就是要用這個 dataset 時 MapX 再臨時綁定數(shù)據(jù)到對象上。 綁定完數(shù)據(jù),將所需要的數(shù)據(jù)讀出,比如景點介紹等信息,通過 session 傳遞到 頁面進行顯示,該頁面通過傳入的信息,選定景點的背景圖案,視頻文件等信息進行顯示。下面分別是武夷山和鴛鴦溪景點介紹的截圖。 圖 12 武夷山 圖 13 鴛鴦溪 與算法結(jié)合實現(xiàn)路徑?jīng)Q策與顯示 在闡述路徑?jīng)Q策過程的之前,我想先把為記錄路線信息而設(shè)計的路線信息類的屬性和方法寫在這里,使讀者可以更清晰的了解下面即將涉及到的問題 class bestroad public road() ‘用來記錄路線所經(jīng)過城市的編號的 數(shù)組 public roadtimevalue ‘用來記錄路線所經(jīng)過交通路線所花費的時間 public roadmoneyvalue ‘用來記錄路線所經(jīng)過交通路線所花費的金錢 public roadJT() ‘用來記錄路線所經(jīng)過的交通路線的編號 sub init ‘構(gòu)造方法,清零操作 sub getRoadJT ‘用來獲得路線所經(jīng)過交通路線的方法 end class 1.路徑?jīng)Q策算法 本系統(tǒng)的路徑?jīng)Q策算法由另一位本組成員負責,該函 數(shù)的原形表現(xiàn)為findroad(G(),startnode,endnode),對參數(shù)的說明,其中 G()為一個表示城市間連通信息的表, Startnode 為起點, endnode 為終點,該函數(shù)返回的結(jié)果為,所有從起點到終點所經(jīng)過的路線的城市。比如從泉州到福州,我們可以從泉州 莆田 福清市 福州也可以從泉州 漳平市 永安市 三明 南平 福州。因此,頁面需要提交給函數(shù)的信息為起點和終點是必須的。城市間的連通信息表通過調(diào)用寫好的 creattable 過程實現(xiàn)。起點和終點信息通過 的表單提交。 2.與算法的結(jié)合 要使用 findroad 函數(shù),首先要解決的問題就是從頁面提交的起點和終點信息為字符串,即具體的地名,而在算法的參數(shù)中抽象為城市編號,因此,首要解決的就是把城市名轉(zhuǎn)化為參數(shù)。我們在數(shù)據(jù)庫中建立了一個城市名稱和城市編號的對應表,因此這個問題只要通過查詢數(shù)據(jù)庫就可以解決了。在本系統(tǒng)的需求中,我們提出了“途經(jīng)點”的概念,在函數(shù)原形中我們并沒有考慮到這個需求,但是可以通過另一個辦法實現(xiàn)。那就是在所決策的路線中查找是否包含途經(jīng)點,如果包含才顯示出來。在頁面的提交過程中,途經(jīng) 點也不是必填項目。所有線路都決策完以后,根據(jù)用戶所選擇的決策條件進行排序,顯示前五條路線在頁面上供用戶選擇。 線路選擇流程圖(圖 14)如下: 圖 14 線路選擇流程圖 線路選擇頁面操作流程如下: 首先填寫起點,終點和途經(jīng)點信息,如圖(圖 15): 圖 15 線路選擇頁面操作流程一 然后提交到下一個頁面,為了方便用戶查看路徑,框架頁設(shè)計成可以移動的形式。如圖(圖 16): 圖 16 線路選擇頁面操作流程二 3.最佳路徑在地圖上的顯示 當用戶選擇好路徑以后,系統(tǒng)就應該把路徑顯示在地圖上了,這部分用代碼加注釋的方 法來解釋會比較直觀一些,詳細代碼在 中,這里把主要代碼列出。 路徑顯示的效果圖(圖 17): 圖 17 最佳路徑顯示圖 主要代碼,注釋是放在代碼后面的。 set nodelayer=Session(cMapXObject).Layers(交通信息 ) ‘設(shè)置當前要操作的層為“交通信息” set findds=Session(cMapXObject).(miDataSetLayer,nodelayer) set =findds set =(交通編號 ) ‘數(shù)據(jù)綁定 ‘清除該層上的圖元選定狀態(tài) While roadnode(i)0 ‘這里的 roadnode數(shù)組是用戶選擇的最佳路徑所經(jīng)過交通路線編號 sql=select DLLX from 道路名稱 where JTBH=39。amp。roadnode(i)amp。39。 sql,conn,1,1 roadnode(i) rs(DLLX) ‘從數(shù)據(jù)庫的對照表中選出道路名稱,并顯示 set foundobj=(RoadNode(i),) If Mod 10 = 1 Then foundobj End If i=i+1
點擊復制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1