版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
目錄TOC\o"1-4"\h\u52171前言 1300271.1研究背景 1117551.2研究現(xiàn)狀與趨勢 110001.3本文主要研究內(nèi)容 332101.4論文的組織結(jié)構(gòu) 4297672相關(guān)技術(shù)介紹 550772.1微信小程序 5240092.2MINA框架 5161992.3小程序云開發(fā) 7289732.4騰訊位置服務(wù) 8233053系統(tǒng)分析 8222053.1可行性分析 8204733.1.1設(shè)計(jì)可行性 858073.1.2研究可行性 912783.1.3經(jīng)濟(jì)可行性 996483.1.4技術(shù)可行性 9102183.2需求分析 10160593.2.1功能性需求分析 10632普通用戶功能需求分析 1015524管理員功能需求分析 14256393.2.2非功能性需求分析 15309753.3系統(tǒng)關(guān)鍵技術(shù)分析 16122874系統(tǒng)設(shè)計(jì) 1790434.1系統(tǒng)技術(shù)架構(gòu)設(shè)計(jì) 17219024.2系統(tǒng)總體功能設(shè)計(jì) 18232134.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì) 19303524.4系統(tǒng)核心功能設(shè)計(jì) 22258774.4.1地圖導(dǎo)航模塊 22182154.4.2后臺管理模塊 23316115系統(tǒng)實(shí)現(xiàn)與測試 26257465.1首頁功能實(shí)現(xiàn) 2656375.2校園信息功能實(shí)現(xiàn) 26324405.3位置點(diǎn)信息功能實(shí)現(xiàn) 28173915.4地圖導(dǎo)航功能實(shí)現(xiàn) 30212595.5后臺管理功能實(shí)現(xiàn) 36131515.6系統(tǒng)功能測試 37111556總結(jié)與展望 39288896.1總結(jié) 39274126.2展望 4025389參考文獻(xiàn) 4214259致謝 44PAGE15PAGE151前言1.1研究背景近年來,隨著時(shí)代與社會的發(fā)展,我國社會經(jīng)濟(jì)水平、綜合實(shí)力得到高速發(fā)展,人民百姓的生活水平也得到不斷改善。隨著百姓對物質(zhì)生活的需求不斷滿足,其對精神生活的需求也在不斷擴(kuò)大,高校資源對外開放受到了越來越多的關(guān)注。高校校園中除了圖書館、高校課程、實(shí)驗(yàn)室等科學(xué)文化資源可以滿足百姓對科學(xué)知識的追求,還有校園綠地、校內(nèi)文化建筑、體育場所等資源可以滿足人民群眾的游憩、運(yùn)動(dòng)等需求。在當(dāng)前國家及地方政府要求實(shí)現(xiàn)全社會資源共享的大環(huán)境之下,高校校園資源向社會開放共享的進(jìn)程逐漸向前推進(jìn),這要求充足的高校資源將更多地為社會群眾服務(wù),實(shí)現(xiàn)校園資源向社會開放共享(趙成功,2015)。在這一進(jìn)程中,校園來訪人數(shù)上升成為必然趨勢。無論是新入校的師生,還是入校參觀的社會人士,在校園內(nèi)快速準(zhǔn)確地找到目的地是一個(gè)普遍存在的出行需求。對于校園規(guī)模較大、校園資源豐富的高校,滿足入校人士的出行需求并非易事。以華南農(nóng)業(yè)大學(xué)為例,天河五山校本部占地4457畝,建筑總面積達(dá)140萬平方米,包含多個(gè)宿舍區(qū)、教學(xué)區(qū)、實(shí)驗(yàn)區(qū)、居民生活區(qū)、運(yùn)動(dòng)區(qū),各個(gè)分區(qū)在地理分布上相互交錯(cuò)。對于不熟悉校內(nèi)環(huán)境的人來說,不借助輔助工具,到達(dá)目標(biāo)地點(diǎn)需要耗費(fèi)大量時(shí)間精力。而傳統(tǒng)的路面標(biāo)識、紙質(zhì)地圖雖然可以幫助人們抵達(dá)目的地,但是具有覆蓋范圍有限、引導(dǎo)信息精密度有限、信息更新不及時(shí)、便攜性差等缺點(diǎn),使用體驗(yàn)較差。而借助手機(jī)地圖導(dǎo)航軟件,可以快速獲得實(shí)時(shí)路徑行程規(guī)劃,但獲取的信息單一,通常僅有出發(fā)地到目的地的路徑信息,沒有其他校園相關(guān)信息。針對高校的應(yīng)用場景,本文提出了基于小程序開發(fā)的校園導(dǎo)航系統(tǒng)設(shè)計(jì),該系統(tǒng)調(diào)用騰訊位置服務(wù)微信小程序JavaScriptSDK開發(fā)包,實(shí)現(xiàn)地圖瀏覽、地點(diǎn)展示、路線展示、路徑規(guī)劃、地點(diǎn)熱度排名、校園信息介紹、在線管理等功能,解決校園出行中的迷路問題,讓用戶快速熟悉校內(nèi)環(huán)境,提高出行效率。1.2研究現(xiàn)狀與趨勢當(dāng)前,隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,手機(jī)地圖成為了人們出行的重要工具之一。常見的手機(jī)地圖導(dǎo)航軟件,如高德地圖、騰訊地圖、百度地圖等,具有大量專業(yè)地圖數(shù)據(jù)資源、完善的在線導(dǎo)航功能以及打車等諸多附帶功能,能夠滿足絕大多數(shù)人在日常中的出行需求。但是,校內(nèi)的地理環(huán)境及社會條件與其他地方不同。高校對社會開放雖然是發(fā)展趨勢,但并非完全對外開放,其中道路、地點(diǎn)的變更往往很難快速被大眾或地圖企業(yè)發(fā)覺。這導(dǎo)致在主流的手機(jī)導(dǎo)航軟件中,高校內(nèi)部的地點(diǎn)道路信息是滯后的、未及時(shí)更新的、不夠詳細(xì)的。因此,在高校環(huán)境中,使用主流手機(jī)地圖導(dǎo)航軟件并不一定能及時(shí)找到目的地,快速前往目標(biāo)地點(diǎn)。為了提升校園服務(wù)水平和用戶體驗(yàn),各大高校紛紛推出了校園導(dǎo)航系統(tǒng)。國內(nèi)很多高校已經(jīng)對校園導(dǎo)航系統(tǒng)進(jìn)行了研宄與開發(fā),每個(gè)高校的基礎(chǔ)設(shè)施不同,開發(fā)技術(shù)及平臺不同,開發(fā)時(shí)期不同,因此開發(fā)出來的系統(tǒng)也不盡相同(牛亞朦,2022)。有的高校依托校外專業(yè)技術(shù)公司設(shè)計(jì)開發(fā)校園導(dǎo)航系統(tǒng),不僅界面友好,而且功能強(qiáng)大,受到師生的歡迎(肖林穎,2019)。以華中師范大學(xué)的校園數(shù)字導(dǎo)航系統(tǒng)為例,該系統(tǒng)由武漢帷幄信息技術(shù)有限公司設(shè)計(jì)開發(fā),其面向用戶的觸摸式一體機(jī)為用戶提供電子導(dǎo)航、校園最新資訊等信息。這種由校外公司承包開發(fā)的模式,需要投入大量的資金(楊偉龍,2013)。同時(shí),該系統(tǒng)中的觸摸式一體機(jī)的數(shù)量是有限的,無法確保機(jī)器的服務(wù)范圍完全覆蓋校園,影響了服務(wù)的完整性,產(chǎn)生在校內(nèi)獲取地圖與導(dǎo)航服務(wù)不夠方便的問題。有的高校自主研發(fā)校園導(dǎo)航系統(tǒng),以Web服務(wù)為主,為入校師生、游客服務(wù)。河南理工大學(xué)團(tuán)隊(duì)開發(fā)的基于GIS的校園導(dǎo)航系統(tǒng),通過三維虛擬現(xiàn)實(shí)技術(shù)繪制校園模型的形式直觀的將校園風(fēng)貌展示出來(文廣超等,2008)。哈爾濱師范大學(xué)以谷歌地圖提供的在線影像地圖為載體,通過富客戶端開發(fā)技術(shù)、數(shù)據(jù)庫技術(shù)等開發(fā)技術(shù)制作開發(fā)了學(xué)校園導(dǎo)航系統(tǒng)(于景鑫,2012)。電子科技大學(xué)設(shè)計(jì)并實(shí)現(xiàn)了集成校園精準(zhǔn)導(dǎo)航、校園服務(wù)功能的校園地圖導(dǎo)覽系統(tǒng),提出的校園地圖導(dǎo)覽小程序可推廣應(yīng)用于旅游、交通等行業(yè)領(lǐng)域(周艷等,2021)。華中科技大學(xué)通過制定滿足智慧校園建設(shè)需求的基礎(chǔ)空間數(shù)據(jù)庫規(guī)范,建設(shè)“一張圖”基礎(chǔ)空間信息服務(wù)平臺,實(shí)現(xiàn)了校園空間數(shù)據(jù)的信息化管理與展示,為學(xué)校教學(xué)、科研、管理等各類信息系統(tǒng)提供了精準(zhǔn)的地理空間數(shù)據(jù)信息(吳馳等,2021)。此外,還有武漢大學(xué)的智慧珞咖武大導(dǎo)覽、西安電子科技大學(xué)的西電導(dǎo)航、哈爾濱工業(yè)大學(xué)的哈工大三維校園地圖程序等一系列校園數(shù)字導(dǎo)航應(yīng)用。部分系統(tǒng)以手機(jī)應(yīng)用移動(dòng)APP形式開發(fā),需要用戶提前下載應(yīng)用而非實(shí)時(shí)提供服務(wù),且移動(dòng)APP更新頻率快,用戶需要不斷進(jìn)行更新才能使用,較為繁瑣。同一款A(yù)PP需要開發(fā)不同操作系統(tǒng)的版本才能全面地覆蓋所有用戶的使用需求,且軟件更新維護(hù)繁瑣,投入的開發(fā)和維護(hù)費(fèi)用較高(張菊,2021)。在國外,許多知名高校也積極探索校園導(dǎo)航系統(tǒng)的發(fā)展??坡〈髮W(xué)地理系建立CampusGISoftheUniversityofCologne系統(tǒng),將包含一般基礎(chǔ)設(shè)施數(shù)據(jù)的已有數(shù)據(jù)庫與空間數(shù)據(jù)連接起來,提供空間信息檢索、定位、校內(nèi)導(dǎo)航和行政管理服務(wù)。南洋理工大學(xué)推出了一款數(shù)字導(dǎo)航地圖的系統(tǒng),這款地圖是IHL與mapper、谷歌和Searce合作開發(fā)的亞洲最大的室內(nèi)地圖項(xiàng)目(牛亞朦,2022)。盡管校園導(dǎo)航系統(tǒng)取得了一定的成就,但仍然存在一些問題需要解決。首先,部分系統(tǒng)以校園或校區(qū)整體為主,在突出三維模型或手繪地圖的同時(shí),缺乏大比例地圖信息,存在地圖信息不準(zhǔn)確、地點(diǎn)信息不完整或更新不及時(shí)的情況,導(dǎo)致用戶在實(shí)際使用中無法準(zhǔn)確獲取目標(biāo)位置的信息,影響了導(dǎo)航的準(zhǔn)確性和實(shí)用性。其次,一些系統(tǒng)在導(dǎo)航體驗(yàn)方面存在問題,如地圖加載速度慢、界面操作復(fù)雜、導(dǎo)航路徑規(guī)劃不合理、交通方式與校內(nèi)狀況不符等,導(dǎo)致用戶體驗(yàn)不佳,難以通過系統(tǒng)指示順利到達(dá)目標(biāo)位置。此外,部分系統(tǒng)功能單一,只提供了基本的地圖瀏覽功能,缺乏校園特色,無法滿足用戶多樣化的出行需求。因此,如何提升校園導(dǎo)航系統(tǒng)的準(zhǔn)確性、實(shí)用性和用戶體驗(yàn)成為當(dāng)前亟待解決的問題。微信小程序作為一種新興的應(yīng)用形式,在國內(nèi)擁有大量的用戶,具有開發(fā)效率高、使用方便、更新迭代快等優(yōu)勢,逐漸成為了校園導(dǎo)航系統(tǒng)的主要發(fā)展形式。結(jié)合微信生態(tài)系統(tǒng)及大量粘性用戶的特點(diǎn),小程序能夠?yàn)橛脩籼峁└鼈€(gè)性化、更智能的導(dǎo)航服務(wù),滿足用戶多樣化的出行需求。針對校園環(huán)境這類小范圍內(nèi)的地圖導(dǎo)覽應(yīng)用場景,作為一個(gè)“輕量化”應(yīng)用,小程序滿足使用者及時(shí)需求、能容納校內(nèi)環(huán)境數(shù)據(jù)體量并極大化節(jié)省資源(周艷等,2021)。此外,微信小程序的開放性平臺特點(diǎn)也吸引了越來越多的開發(fā)者和合作伙伴參與校園導(dǎo)航系統(tǒng)的開發(fā),構(gòu)建了完整的生態(tài)系統(tǒng)(李珊,2019)。1.3本文主要研究內(nèi)容本文通過調(diào)研高校校園地圖導(dǎo)航平臺,整合各類資源,將解決校園地圖信息不準(zhǔn)確不及時(shí)、用戶體驗(yàn)差、缺乏校園特色、功能單一等問題作為本系統(tǒng)開發(fā)目的,使用小程序原生代碼,采用微信小程序MINA(MiniProgramNativeFramework)框架,結(jié)合WXML(WeiXinMarkupLanguage)、WXSS(WeiXinStyleSheets)、JavaScript等前端技術(shù),引用外部UI組件庫開發(fā)小程序前端,利用小程序云開發(fā)編寫云函數(shù)鏈接數(shù)據(jù)庫,云數(shù)據(jù)庫存儲數(shù)據(jù),調(diào)用原生map組件與騰訊位置服務(wù)微信小程序JavaScriptSDK(SoftwareDevelopmentKit)實(shí)現(xiàn)地圖服務(wù),以華南農(nóng)業(yè)大學(xué)為例,開發(fā)了一個(gè)基于小程序開發(fā)的校園導(dǎo)航系統(tǒng),提供精準(zhǔn)的位置定位和路徑規(guī)劃功能,讓訪客快速了解校園,解決校園出行中的迷路問題,提高出行效率。小程序端系統(tǒng)主要包含以下功能:(1)位置點(diǎn)查找與展示:用戶通過地圖瀏覽查找、輸入關(guān)鍵字搜索、按類別分類查找等方式查找位置點(diǎn),獲取位置點(diǎn)信息。(2)路線展示:用戶進(jìn)入小程序地圖模塊,選擇交通路線或?yàn)g覽路線展示,可以獲取校內(nèi)觀光巴士路線、校內(nèi)公交路線及瀏覽路線信息。(3)自動(dòng)定位及路徑規(guī)劃:用戶進(jìn)入小程序地圖模塊后,系統(tǒng)會利用移動(dòng)設(shè)備定位系統(tǒng)自動(dòng)定位并在地圖上顯示用戶當(dāng)前位置。用戶可通過設(shè)置起點(diǎn)或終點(diǎn),進(jìn)行路徑規(guī)劃,獲取由系統(tǒng)自動(dòng)規(guī)劃出的最短或最快路徑?jīng)Q策支持。(4)地點(diǎn)熱度排名:用戶進(jìn)入地點(diǎn)熱度模塊,可以獲得校內(nèi)地點(diǎn)熱度排名。該排名由用戶對各地點(diǎn)的瀏覽次數(shù)決定排名序列。(5)校園信息介紹:用戶進(jìn)入校園信息模塊,可以獲得對校園文化、校園出行、校園生活、校園學(xué)習(xí)等方面的文本媒體介紹。(6)在線管理:管理員根據(jù)OpenID免密進(jìn)入管理模塊,可以對校園地點(diǎn)、小程序媒體等信息進(jìn)行增刪改查等管理,方便程序運(yùn)行。1.4論文的組織結(jié)構(gòu)第一章,前言部分。該部分主要介紹了本文的選題背景與意義,對現(xiàn)存國內(nèi)外校園地圖導(dǎo)航系統(tǒng)進(jìn)行調(diào)研,比較其中的優(yōu)缺點(diǎn),提出系統(tǒng)旨在解決的問題,并在此基礎(chǔ)上說明了文章的主要研究內(nèi)容和組織結(jié)構(gòu)。第二章,相關(guān)技術(shù)的介紹。該部分主要介紹了本文所涉及的相關(guān)技術(shù),包括微信小程序、MINA框架、小程序云開發(fā)及騰訊位置服務(wù)等。第三章,系統(tǒng)分析。該部分從設(shè)計(jì)、研究、經(jīng)濟(jì)、技術(shù)四方面進(jìn)行可行性分析,從功能性、非功能性兩方面進(jìn)行需求分析,從小程序開發(fā)技術(shù)、地圖開發(fā)技術(shù)兩方面進(jìn)行核心技術(shù)分析討論。第四章,系統(tǒng)設(shè)計(jì)部分。該部分對系統(tǒng)技術(shù)架構(gòu)設(shè)計(jì)、系統(tǒng)總體功能設(shè)計(jì)、系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)、系統(tǒng)核心功能設(shè)計(jì)進(jìn)行多方面闡述。第五章,系統(tǒng)實(shí)現(xiàn)與測試部分。該部分對系統(tǒng)各界面及功能實(shí)現(xiàn)進(jìn)行闡述,并對各功能進(jìn)行用例測試。第六章,總結(jié)與展望部分。該部分對本文的研究工作進(jìn)行總結(jié),分析實(shí)驗(yàn)過程中的經(jīng)驗(yàn)與不足,并對系統(tǒng)的未來發(fā)展發(fā)祥提出展望。2相關(guān)技術(shù)介紹2.1微信小程序2017年,微信小程序首次對外上線測試,憑借其不需要安裝下載、即用即棄、無推送機(jī)制的優(yōu)點(diǎn),有效改善傳統(tǒng)移動(dòng)應(yīng)用在下載和安裝時(shí)會出現(xiàn)內(nèi)存不足、信息泄露等問題,將用戶與線上、線下服務(wù)連接。據(jù)騰訊公告,在微信小程序推出兩年時(shí)間內(nèi),微信小程序憑借大量微信粘性用戶、輕量級加載使用、出色的用戶體驗(yàn)等優(yōu)點(diǎn),其每日使用率已經(jīng)達(dá)到2億用戶,小程序數(shù)量達(dá)到100萬,在互聯(lián)網(wǎng)行業(yè)中引起了不小的轟動(dòng)(姚麗娟等,2023;陸禹文,2020)。對用戶而言,小程序節(jié)省了手機(jī)內(nèi)存空間,優(yōu)化了使用體驗(yàn);對于開發(fā)者而言,小程序開發(fā)無需考慮多平臺、多系統(tǒng)、多機(jī)型的差異,降低了開發(fā)難度、運(yùn)營維護(hù)成本(匡文波,2017)。而使用小程序開發(fā)校園導(dǎo)航系統(tǒng),具有以下優(yōu)點(diǎn):微信小程序可以直接在微信中使用,無需用戶額外下載和安裝,節(jié)省了用戶的手機(jī)存儲空間,并且方便用戶隨時(shí)隨地使用校內(nèi)地圖導(dǎo)航服務(wù);微信小程序支持通過微信內(nèi)的分享功能,快速分享給朋友、同學(xué)和同事,擴(kuò)大了校內(nèi)地圖導(dǎo)航的傳播范圍,使更多人了解和使用該服務(wù);微信小程序與微信生態(tài)系統(tǒng)緊密結(jié)合,可以充分利用微信社交關(guān)系、用戶信息和支付功能等資源,提供更個(gè)性化、更智能的校內(nèi)地圖導(dǎo)航服務(wù),增強(qiáng)了用戶粘性和使用體驗(yàn);微信小程序可以在各種類型的手機(jī)設(shè)備上運(yùn)行,包括IOS和Android系統(tǒng),無需針對不同平臺進(jìn)行單獨(dú)開發(fā),節(jié)省了開發(fā)成本和維護(hù)成本,提高了開發(fā)效率;微信小程序支持實(shí)時(shí)數(shù)據(jù)更新和動(dòng)態(tài)內(nèi)容展示,可以根據(jù)用戶的實(shí)時(shí)位置和需求,動(dòng)態(tài)調(diào)整地圖展示和導(dǎo)航路線,確保用戶獲取到最新、最準(zhǔn)確的導(dǎo)航信息。2.2MINA框架在微信小程序的開發(fā)中,MINA框架作為底層支撐,起到了至關(guān)重要的作用。它微信官方為開發(fā)者提供了一套完整、高效的應(yīng)用程序開發(fā)解決方案,使得開發(fā)者能夠快速、便捷地構(gòu)建出功能豐富、性能卓越的小程序。需注意,本文所提及的MINA框架與ApacheMINA(MultipurposeInfrastructureforNetworkApplications)框架并非同一框架。雖然它們在名稱上相似,但是ApacheMINA和小程序MINA框架是完全不同的東西,分別用于不同的領(lǐng)域和用途。MINA框架如圖1所示,其通過封裝微信客戶端提供的文件系統(tǒng)、任務(wù)管理、權(quán)限管理、網(wǎng)絡(luò)管理等基礎(chǔ)功能,向上層提供一套完整的JavaScriptAPI(常錚,2022)。開發(fā)者可以通過調(diào)用MINA框架中的接口,使用微信客戶端提供的功能,方便快速地進(jìn)行應(yīng)用搭建(程子珍,2019)。圖1小程序MINA框架示意圖整個(gè)系統(tǒng)分為視圖層(View)和邏輯層(AppService)兩個(gè)部分(林彬等,2021)。視圖層由WXML和WXSS組成,這兩部分通常與網(wǎng)頁前端中的HTML(HyperTextMarkupLanguage)和CSS(CascadingStyleSheets)對標(biāo)。WXML是MINA框架設(shè)計(jì)的一套標(biāo)簽語言,結(jié)合基礎(chǔ)組件、事件系統(tǒng)可以構(gòu)建出頁面的結(jié)構(gòu)。WXSS是小程序的樣式語言,用于描述WXML的組件樣式(柳葉,2021)。開發(fā)者通過WXML搭建頁面的基礎(chǔ)視圖結(jié)構(gòu),通過WXSS控制頁面的展現(xiàn)樣式。邏輯層是MINA框架的核心部分,由JavaScript編寫完成,負(fù)責(zé)實(shí)現(xiàn)頁面渲染所需的數(shù)據(jù)和處理頁面交互的邏輯。MINA框架采用了響應(yīng)式數(shù)據(jù)綁定系統(tǒng),使得數(shù)據(jù)與視圖之間的同步變得非常簡單。當(dāng)邏輯層中的數(shù)據(jù)發(fā)生變化時(shí),視圖層會自動(dòng)更新,確保頁面的實(shí)時(shí)性(曾水新,2022)。MINA框架為頁面組件提供了一系列事件監(jiān)聽相關(guān)的屬性。開發(fā)者可以使用這些屬性將頁面與邏輯層中的事件處理函數(shù)綁定在一起,實(shí)現(xiàn)頁面向邏輯層傳遞用戶交互數(shù)據(jù)的功能(柴云,2018)。同時(shí),MINA框架支持支持組件化開發(fā)和模塊化開發(fā),提高代碼的復(fù)用性、可維護(hù)性、可重用性、可擴(kuò)展性。2.3小程序云開發(fā)小程序云開發(fā)是為小程序開發(fā)者提供完整的云端支持,弱化了后端和運(yùn)維概念,以及無須搭建服務(wù)器,即可在前端快速實(shí)現(xiàn)小程序核心功能,快速實(shí)現(xiàn)項(xiàng)目部署的一套系統(tǒng)方案,致力于幫助更多的開發(fā)者快速實(shí)現(xiàn)小程序業(yè)務(wù)的開發(fā),實(shí)現(xiàn)快速迭代(張世興等,2023)。云開發(fā)提供了原生的、完整的云支持和微信支持服務(wù),主要包含主要由云函數(shù)、云數(shù)據(jù)庫、云存儲三部分組成(李茹萍,2021)。云函數(shù)是一種無服務(wù)器的計(jì)算服務(wù),是一段運(yùn)行在云端的代碼。開發(fā)者只需要在開發(fā)工具內(nèi)編寫自身的業(yè)務(wù)邏輯代碼,一鍵上傳部署即可利用云服務(wù)器運(yùn)行后端代碼,實(shí)現(xiàn)特定的業(yè)務(wù)邏輯,而無需管理服務(wù)器。云函數(shù)可以與云數(shù)據(jù)庫、云存儲等其他云服務(wù)進(jìn)行交互,為小程序提供定制化的后端功能。云數(shù)據(jù)庫本質(zhì)上是一個(gè)MongoDB數(shù)據(jù)庫,介于關(guān)系數(shù)據(jù)庫與非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是小程序提供的一種輕量級、可擴(kuò)展的JSON格式數(shù)據(jù)庫服務(wù),支持實(shí)時(shí)同步、數(shù)據(jù)安全等特性。開發(fā)者可以使用云數(shù)據(jù)庫存儲小程序的數(shù)據(jù),如用戶信息、應(yīng)用配置等。云開發(fā)是小程序提供的一種對象存儲服務(wù),提供了上傳文件到云端、帶權(quán)限管理的云端下載能力。開發(fā)者可以在小程序端和云函數(shù)端通過API使用云存儲功能進(jìn)行可視化的管理,支持存儲管理、權(quán)限設(shè)置、上傳管理、組件支持等功能。2.4騰訊位置服務(wù)騰訊位置服務(wù)是騰訊公司提供的一項(xiàng)基于位置的云服務(wù),它整合了定位、地圖、搜索、路線規(guī)劃、導(dǎo)航和位置大數(shù)據(jù)等專業(yè)LBS(LocationBasedService)能力,旨在為開發(fā)者提供高精度、全面的地理位置信息和地圖服務(wù)。騰訊位置服務(wù)通過其API接口,為開發(fā)者提供了豐富的地圖組件和室內(nèi)地圖服務(wù)包括針對Web應(yīng)用的JavaScriptAPI,適合手機(jī)端的IOSSDK、AndroidSDK,以及WebService接口和各類地圖API等,簡化了開發(fā)過程,降低了開發(fā)門檻(常錚,2023)。此外,騰訊位置服務(wù)還提供了定位調(diào)用、地圖數(shù)據(jù)、搜索服務(wù)、路線規(guī)劃等,助力合作伙伴和開發(fā)者在社交、出行、游戲、商業(yè)、O2O、物流等多個(gè)領(lǐng)域提供更專業(yè)和精準(zhǔn)的位置服務(wù)。本文所使用的騰訊位置服務(wù)微信小程序JavaScriptSDK是專門為微信小程序而設(shè)計(jì)的,與微信小程序的框架和環(huán)境高度兼容,具有更好的穩(wěn)定性和性能表現(xiàn)。該SDK提供了豐富的API和組件,整合了騰訊位置服務(wù)的地圖渲染、地點(diǎn)查詢、路徑規(guī)劃等功能,可直接在微信小程序中調(diào)用。使用該SDK使開發(fā)者無需額外調(diào)用其他接口,便可輕松實(shí)現(xiàn)相關(guān)功能,大大簡化了開發(fā)者的開發(fā)流程,減少了開發(fā)成本和時(shí)間。騰訊位置服務(wù)微信小程序JavaScriptSDK在微信小程序開發(fā)中具有便捷性、穩(wěn)定性和與微信生態(tài)系統(tǒng)緊密結(jié)合的優(yōu)勢,但在功能的豐富性和適用性上可能相對其他開發(fā)接口存在一定的局限性。且使用該SDK必須依賴微信小程序的環(huán)境和平臺,對于不使用微信小程序的應(yīng)用場景,該SDK無法直接使用。3系統(tǒng)分析3.1可行性分析可行性分析是系統(tǒng)開發(fā)前的必要條件。軟件開發(fā)項(xiàng)目啟動(dòng)前,開發(fā)者需全面審視開發(fā)成本、技術(shù)架構(gòu)等因素,從技術(shù)、經(jīng)濟(jì)層面進(jìn)行項(xiàng)目分析,為后期開發(fā)工作指明方向。本文的系統(tǒng)可行性分析從設(shè)計(jì)可行性、研究可行性、經(jīng)濟(jì)可行性、技術(shù)可行性四方面進(jìn)行描述。3.1.1設(shè)計(jì)可行性本系統(tǒng)以華南農(nóng)業(yè)大學(xué)為例進(jìn)行開發(fā)設(shè)計(jì)。華南農(nóng)業(yè)大學(xué)位于廣東省廣州市,依據(jù)地理位置可劃分為天河區(qū)五山校本部和增城區(qū)教學(xué)科研基地。由于師生、訪客的主要活動(dòng)范圍為校本部,且科研基地的大部分用地為農(nóng)田,故本系統(tǒng)以校本部為開發(fā)對象。在校本部中,包含25棟學(xué)院院樓、6個(gè)公共教學(xué)區(qū)、6個(gè)學(xué)生宿舍區(qū)、6個(gè)飯?zhí)谩?個(gè)綜合運(yùn)動(dòng)操場、3個(gè)綜合體育館、5個(gè)人工湖泊以及諸多生活設(shè)施區(qū)和居民區(qū),各類地點(diǎn)遍布整個(gè)校本部,且校內(nèi)道路錯(cuò)綜復(fù)雜,對于不熟悉校內(nèi)結(jié)構(gòu)的人來說,達(dá)到具體的地點(diǎn)需要耗費(fèi)大量時(shí)間精力。此外,很多傳統(tǒng)的手機(jī)地圖導(dǎo)航軟件對校內(nèi)的詳細(xì)地點(diǎn)并沒有更新到最新數(shù)據(jù),容易出現(xiàn)找不到目的地的情況。因此,開發(fā)一款基于小程序開發(fā)的校園導(dǎo)航系統(tǒng)是很有必要的。3.1.2研究可行性校園導(dǎo)航系統(tǒng)是一個(gè)實(shí)踐性強(qiáng)、應(yīng)用范圍廣的項(xiàng)目,不僅可以幫助不熟悉校園結(jié)構(gòu)的師生、訪客快速熟悉各類地點(diǎn)在校內(nèi)的分布,為學(xué)校提供實(shí)際的服務(wù)和幫助,而且有利于推動(dòng)校園信息化建設(shè)和智慧校園建設(shè)。同時(shí),通過本系統(tǒng)中地圖與文本指引的相結(jié)合,新入校的師生可以更快適應(yīng)校內(nèi)生活,參觀的訪客可以更明確地前往特色地點(diǎn)游覽。3.1.3經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性主要評估項(xiàng)目在經(jīng)濟(jì)投入和收益方面的可行性。對于校園導(dǎo)航系統(tǒng)而言,小程序開發(fā)相對于傳統(tǒng)的移動(dòng)應(yīng)用開發(fā)成本較低,同時(shí)騰訊位置服務(wù)和云開發(fā)技術(shù)也提供了免費(fèi)或付費(fèi)的使用方案,小程序和騰訊位置服務(wù)都提供了穩(wěn)定的云端服務(wù),因此開發(fā)成本和運(yùn)維成本相對較低。同時(shí),校園導(dǎo)航系統(tǒng)可以提高學(xué)校校園資源的利用率,提升師生和訪客的出行體驗(yàn),增強(qiáng)學(xué)校的形象與軟實(shí)力,可能帶來一定的間接收益。綜合考慮以上因素,從經(jīng)濟(jì)層面上來說,開發(fā)基于小程序的校園地圖導(dǎo)航系統(tǒng)具有一定的可行性。3.1.4技術(shù)可行性技術(shù)可行性是評估項(xiàng)目在技術(shù)實(shí)施方面是否可行的重要指標(biāo)。微信小程序的開發(fā)技術(shù)已經(jīng)相當(dāng)成熟,微信方面提供了詳盡的開發(fā)文檔和高效開發(fā)工具,如微信開發(fā)者工具和MINA框架,為廣大開發(fā)者提供了便利。騰訊位置服務(wù)提供了全面、穩(wěn)定的地理位置解決方案,包括圖層管理、路徑規(guī)劃、地點(diǎn)搜索等功能模塊,能夠滿足校園導(dǎo)航系統(tǒng)的需求,因此在技術(shù)上也具備較高的可行性。小程序云開發(fā)技術(shù)能夠有效地實(shí)現(xiàn)前端與后端的分離,簡化了開發(fā)流程,降低了開發(fā)成本,同時(shí)也提供了穩(wěn)定可靠的后端支持,因此在技術(shù)上也具備較高的可行性。綜合考慮以上因素,從技術(shù)上來說,開發(fā)基于小程序的校園導(dǎo)航系統(tǒng)具有較高的可行性。3.2需求分析需求分析是軟件開發(fā)過程中的一個(gè)重要階段,其目的是準(zhǔn)確定義用戶對系統(tǒng)或軟件的需求和期望,確保最終交付的系統(tǒng)能夠滿足用戶的實(shí)際需求。本節(jié)將從功能性需求、非功能性需求兩方面進(jìn)行需求分析。3.2.1功能性需求分析功能性需求分析旨在識別、分析用戶對系統(tǒng)在功能方面的需求。本系統(tǒng)的使用人群主要分為兩類:一類是普通用戶,即使用系統(tǒng)主要功能的師生、訪客等,另一類是擁有后臺權(quán)限的管理員。普通用戶功能需求分析普通用戶是指從小程序端訪問該系統(tǒng)的用戶,也是該系統(tǒng)使用人數(shù)最多的用戶群體。該群體使用本系統(tǒng)的目的在于快速熟悉校園結(jié)構(gòu),快速到達(dá)目標(biāo)地點(diǎn),快速獲取校園信息。面向普通用戶的功能模塊可以劃分為六個(gè)模塊,分別為:首頁功能導(dǎo)航、校園信息介紹、位置點(diǎn)信息、地圖導(dǎo)航、路線展示、地點(diǎn)熱度排名。普通用戶具體用例圖如圖2所示。(1)首頁功能導(dǎo)航模塊。用戶進(jìn)入小程序后,會直接進(jìn)入首頁。首頁在本系統(tǒng)承擔(dān)著功能導(dǎo)航菜單的角色,在介紹院校的同時(shí),也提供了各主要功能的入口。在首頁頁面頂端是以輪播圖形式展示的學(xué)校校園特色風(fēng)景圖片;頁面中間是?;铡W(xué)校相關(guān)介紹以及學(xué)校詳細(xì)介紹的入口;頁面下部是各主要功能的入口,包含地圖導(dǎo)航、生活指南、地點(diǎn)熱度排名、友情鏈接;頁面底部是校園天氣及版權(quán)說明。圖3為首頁功能導(dǎo)航具體用例圖。(2)校園信息介紹模塊。校園信息模塊向用戶提供了大量不同類別的信息,包括學(xué)校信息介紹、校園生活指南、友情鏈接、校園天氣等。其中,友情鏈接以二維碼形式展示,包含了學(xué)校官方公眾號、圖書館官方公眾號、校園巴士小程序、校園共享電動(dòng)車小程序等鏈接,方便滿足用戶各方面需求。圖4為校園信息介紹模塊的具體用例圖。(3)位置點(diǎn)信息模塊。位置點(diǎn)信息模塊有兩種表現(xiàn)形式,一是在地圖上相應(yīng)的位置上顯示,二是在位置點(diǎn)匯總處分類顯示。每個(gè)位置點(diǎn)的信息包含位置點(diǎn)的名稱、別名、經(jīng)緯度位置、簡介、類別、圖片等。用戶可以在地圖上方的輸入欄,輸入關(guān)鍵字查找相關(guān)位置點(diǎn),也可以在地點(diǎn)匯總中按分類查找相關(guān)地點(diǎn)。用戶點(diǎn)擊相應(yīng)位置點(diǎn)后,會彈出位置點(diǎn)相關(guān)信息介紹的彈窗,用戶可以在彈窗中的選項(xiàng)進(jìn)行進(jìn)一步路徑規(guī)劃。圖5為位置點(diǎn)信息模塊的具體用例圖。圖2普通用戶UML用例圖(4)地圖導(dǎo)航模塊。該模塊主要包含自動(dòng)定位和路徑規(guī)劃兩個(gè)功能。當(dāng)用戶打開地圖導(dǎo)航模塊,本系統(tǒng)會通過移動(dòng)設(shè)備定位系統(tǒng)獲得用戶當(dāng)前位置信息,并將用戶當(dāng)前位置信息轉(zhuǎn)化輸入到地圖中,使用戶的當(dāng)前位置在地圖中顯示出來。路徑規(guī)劃根據(jù)向系統(tǒng)傳輸起點(diǎn)和終點(diǎn)的位置信息,結(jié)合地圖路網(wǎng)信息和相關(guān)參數(shù)選擇,得到一條由起點(diǎn)到終點(diǎn)的路線。在本系統(tǒng)中,起點(diǎn)位置默認(rèn)為用戶當(dāng)前位置。用戶可以通過在地圖上方的搜索欄,或者地點(diǎn)匯總處找到目標(biāo)地點(diǎn),在點(diǎn)擊目標(biāo)地點(diǎn)后會彈出相關(guān)介紹的彈窗中選擇將其設(shè)置為起點(diǎn)或?qū)⑵湓O(shè)置為終點(diǎn)。圖6為路徑規(guī)劃模塊的具體用例圖。圖3首頁模塊UML用例圖圖4校園信息介紹模塊UML用例圖(5)路線展示模塊。除了導(dǎo)航模塊中路徑規(guī)劃的動(dòng)態(tài)路徑,本系統(tǒng)還設(shè)置了兩類靜態(tài)路徑,分別為校內(nèi)公交路線路徑、訪客推薦游覽路徑。該模塊的設(shè)置是根據(jù)校內(nèi)出行方式多樣化的實(shí)際情況,滿足用戶的出行需求。同時(shí),華南農(nóng)業(yè)大學(xué)以花聞名,本系統(tǒng)可以根據(jù)不同季節(jié)的開花情況,為訪客設(shè)置不同的游覽路線,滿足訪客的游憩需求。圖7為路線展示模塊的具體用例圖。圖5位置點(diǎn)信息模塊UML用例圖圖6地圖導(dǎo)航模塊UML用例圖(6)地點(diǎn)熱度排名。該模塊對本系統(tǒng)內(nèi)各個(gè)位置點(diǎn)的搜索量、瀏覽量進(jìn)行排序,得到一個(gè)校內(nèi)地點(diǎn)熱度排名榜單,一方面可以幫助訪客了解校園熱門地點(diǎn),提供出行目的地決策支持,另一方面可以讓學(xué)校得到來訪人士對校園地點(diǎn)的偏好數(shù)據(jù),為校園設(shè)施維修、校園形象建設(shè)、安保工作調(diào)動(dòng)等工作安排提供數(shù)據(jù)輔助。圖7路線展示模塊UML用例圖管理員功能需求分析管理員即擁有后臺系統(tǒng)管理權(quán)限的校內(nèi)管理人員。管理員可以在小程序中通過免密登錄身份驗(yàn)證進(jìn)入后臺管理,對校區(qū)內(nèi)各類位置點(diǎn)數(shù)據(jù)信息進(jìn)行管理,也可以對系統(tǒng)內(nèi)各類媒體進(jìn)行管理。管理員具體用例圖如圖8所示。圖8管理員UML用例圖(1)身份驗(yàn)證。每一名用戶在使用微信小程序擁有唯一的OpenID。在本系統(tǒng)中,管理員的權(quán)限通過在云數(shù)據(jù)庫中寫入指定用戶的OpenID獲得。管理員在進(jìn)入后臺管理系統(tǒng)時(shí),系統(tǒng)會將管理員的OpenID與云數(shù)據(jù)庫中的管理員OpenID進(jìn)行配對,若配對成功則成功進(jìn)入后臺管理系統(tǒng),若配對失敗則自動(dòng)返回上一頁。(2)地點(diǎn)管理。管理員完成身份驗(yàn)證進(jìn)入后臺系統(tǒng)后,可以對地點(diǎn)類別進(jìn)行新增、修改、刪除的管理操作。在對類別進(jìn)行刪除操作前,需確保正在操作的地點(diǎn)類別下已沒有地點(diǎn)信息,否則刪除失敗。同樣,管理員可以新增地點(diǎn)信息,對已有的地點(diǎn)進(jìn)行修改、刪除的管理操作。在新增地點(diǎn)信息時(shí),管理員必須填寫地點(diǎn)名稱、地點(diǎn)坐標(biāo)和地點(diǎn)所屬類別,其他信息如別名、簡介、圖片等可作選填項(xiàng)。其中,本系統(tǒng)在新增地點(diǎn)時(shí),無需手動(dòng)輸入經(jīng)緯度,只需在后臺系統(tǒng)中打開地圖選點(diǎn)器即可得到新增地點(diǎn)的經(jīng)緯度信息。由于本系統(tǒng)為校園導(dǎo)航系統(tǒng),當(dāng)移動(dòng)設(shè)備GPS定位到用戶所在位置不在系統(tǒng)設(shè)定的校內(nèi)范圍時(shí),系統(tǒng)內(nèi)的地圖視角將自動(dòng)返回設(shè)定好的默認(rèn)地點(diǎn)處。管理員進(jìn)入后臺系統(tǒng)后,可以將某個(gè)已存在的位置點(diǎn)設(shè)置為默認(rèn)地點(diǎn)。(3)媒體管理。管理員進(jìn)入后臺系統(tǒng)后,可以將本地的圖片、視頻等媒體數(shù)據(jù)上傳,其中圖片數(shù)據(jù)可以上傳到首頁輪播圖、位置點(diǎn)圖片、地圖圖層處,視頻數(shù)據(jù)可以上傳到學(xué)校介紹處。除了管理員外,開發(fā)者還可以再開發(fā)者平臺查看小程序相關(guān)數(shù)據(jù),如流量、資源調(diào)用次數(shù)、訪問次數(shù)等,由于該部分為開發(fā)平臺附帶功能且并非本系統(tǒng)主要功能,故不展開闡述。3.2.2非功能性需求分析除功能性需求外,用戶還對系統(tǒng)提出非功能性需求,如使用過程的易用性、安全性、穩(wěn)定性以及系統(tǒng)性能等。這與關(guān)注系統(tǒng)所能實(shí)現(xiàn)的功能性需求不同,非功能性需求更側(cè)重于系統(tǒng)的性能和質(zhì)量。(1)性能需求。由于系統(tǒng)采用小程序開發(fā)模式,小程序的輕量級能保證快速響應(yīng)用戶請求,頁面加載時(shí)間應(yīng)在2秒以內(nèi);系統(tǒng)能支持同時(shí)處理多個(gè)用戶請求,確保在高并發(fā)情況下系統(tǒng)穩(wěn)定運(yùn)行;本系統(tǒng)采用小程序適配的位置服務(wù)JavaScriptSDK,可以確保地圖加載和路徑規(guī)劃的速度,避免出現(xiàn)卡頓或延遲現(xiàn)象。(2)安全性。本系統(tǒng)面向普通用戶采用免登錄的方式,方便用戶運(yùn)行的同時(shí)減少了用戶個(gè)人信息的采集;小程序系統(tǒng)具備身份驗(yàn)證、訪問控制機(jī)制,可以確保只有授權(quán)用戶才能接觸訪問敏感信息和功能;該系統(tǒng)中所有管理員信息均存儲于云數(shù)據(jù)庫中,該數(shù)據(jù)庫提供相應(yīng)的保護(hù)機(jī)制,可以有效避免信息泄露,且不會被隨意篡改。(3)易用性。在系統(tǒng)開發(fā)設(shè)計(jì)的過程中,考慮到本系統(tǒng)面向用戶不僅是大學(xué)生和青年教師,還有青少年和較年長的訪客,故采用簡潔的風(fēng)格進(jìn)行設(shè)計(jì),確保各個(gè)功能的使用過程簡單流程,頁面的跳轉(zhuǎn)快速流暢,避免用戶因?yàn)樵O(shè)計(jì)問題降低體驗(yàn)感。且系統(tǒng)支持在不同的操作系統(tǒng)上正常運(yùn)行,提高了系統(tǒng)兼容性。(4)穩(wěn)定性。該系統(tǒng)在開發(fā)設(shè)計(jì)的過程中,進(jìn)行完備的功能測試及一定的性能測試,確保系統(tǒng)穩(wěn)定、有序地運(yùn)行,持續(xù)減少因?yàn)榻Y(jié)構(gòu)設(shè)計(jì)導(dǎo)致系統(tǒng)運(yùn)行不穩(wěn)定的問題,使系統(tǒng)處于穩(wěn)定狀態(tài)。3.3系統(tǒng)關(guān)鍵技術(shù)分析在設(shè)計(jì)、實(shí)現(xiàn)本系統(tǒng)的過程中,小程序開發(fā)技術(shù)、地圖開發(fā)技術(shù)起到了關(guān)鍵作用,是本系統(tǒng)的核心技術(shù)。本小節(jié)圍繞這兩項(xiàng)技術(shù)展開分析與討論。小程序開發(fā)技術(shù)的成熟與騰訊公司對小程序商業(yè)模式的鋪張,使小程序在國內(nèi)日常生活中的主流程度愈來愈高。在移動(dòng)設(shè)備上,其使用頻率與網(wǎng)頁的使用頻率相比并不落下風(fēng)。在開發(fā)者視角中,兩者雖然有很多相似之處,但在具體的開發(fā)過程和應(yīng)用場景中還是有一些區(qū)別。微信小程序開發(fā)通常采用的是微信提供的MINA開發(fā)框架,使用WXML、WXSS、JavaScript等編程語言;網(wǎng)頁開發(fā)則通常采用HTML、CSS、JavaScript等前端語言進(jìn)行開發(fā),可以使用各種前端框架如React、Vue、Angular等。微信小程序有自己的生命周期函數(shù),如onLoad、onShow等,以及頁面跳轉(zhuǎn)方式,如navigateTo、redirectTo等;網(wǎng)頁開發(fā)中一般不涉及生命周期函數(shù),頁面跳轉(zhuǎn)則通過超鏈接或JavaScript進(jìn)行控制。微信小程序由于運(yùn)行在微信環(huán)境中,需要遵循微信的開發(fā)規(guī)范和限制,如對API的調(diào)用權(quán)限、頁面跳轉(zhuǎn)的限制等;網(wǎng)頁開發(fā)則沒有類似的限制,可以自由地使用各種瀏覽器提供的功能和API。總的來說,微信小程序開發(fā)更專注于在微信平臺上提供豐富的應(yīng)用功能和交互體驗(yàn),而網(wǎng)頁開發(fā)則更多地面向于傳統(tǒng)的網(wǎng)頁瀏覽器環(huán)境。本系統(tǒng)采用小程序開發(fā),一是考慮到當(dāng)前國內(nèi)環(huán)境對微信生態(tài)的依賴,二是其開發(fā)模式與本系統(tǒng)在需求上的契合度,三是其發(fā)開環(huán)境具有相關(guān)的技術(shù)支持。為實(shí)現(xiàn)本系統(tǒng)地圖開發(fā)模塊,本文所選擇的是騰訊位置服務(wù)微信小程序JavaScriptSDK。騰訊地圖作為國內(nèi)主流的商業(yè)地圖開發(fā)商之一,其地圖數(shù)據(jù)資源較全面,數(shù)據(jù)更新也較及時(shí)。該SDK作為官方專門為微信小程序而設(shè)計(jì)的地圖服務(wù)類軟件開發(fā)工具包,與小程序的框架和環(huán)境具有高度兼容性、更好的穩(wěn)定性和性能表現(xiàn),且由于微信小程序本身就是微信生態(tài)系統(tǒng)的一部分,使用該SDK可以充分利用微信社交關(guān)系、用戶粘度和微信生態(tài)中其他校園程序公眾號等資源,提供更個(gè)性化、更智能的服務(wù)。在選擇使用小程序開發(fā)和微信小程序JavaScriptSDK的同時(shí),也存在一些結(jié)構(gòu)性、功能性的舍棄。相比于傳統(tǒng)的地圖應(yīng)用或網(wǎng)頁地圖服務(wù),小程序地圖的功能可能會受到一定的限制,無法滿足某些復(fù)雜場景下的需求。由于小程序本身所能承載的內(nèi)存量、工具包包含的數(shù)據(jù)服務(wù)等限制,在小程序上所能開發(fā)的功能不及如WebSericeAPI、WeMap、JavascriptAPIGL等騰訊位置服務(wù)的其他開發(fā)包豐富、強(qiáng)大,在地圖特色方面與Cesium、Leaflet等開源GIS庫尚有差距,也難以像ArcGISAPIforJavascript、SuperMapiClient等具有非常專業(yè)、全面的GIS開發(fā)環(huán)境。因此,本文在地圖開發(fā)實(shí)現(xiàn)方面更多的是作展示類和導(dǎo)航類的功能開發(fā),對于分析性、深入性的開發(fā)較為欠缺。4系統(tǒng)設(shè)計(jì)4.1系統(tǒng)技術(shù)架構(gòu)設(shè)計(jì)圖9系統(tǒng)技術(shù)架構(gòu)設(shè)計(jì)圖本系統(tǒng)是以微信小程序?yàn)檫\(yùn)行主體,以云開發(fā)平臺為后端服務(wù)器的線上校園導(dǎo)航系統(tǒng)。系統(tǒng)前端頁面即運(yùn)行在微信平臺的微信小程序端,采用MINA框架,主要使用WXML、WXSS、JavaScript語言編寫,調(diào)用WeUI、天氣API等技術(shù),借助騰訊位置服務(wù)微信小程序JavaScriptSDK開發(fā)而成。系統(tǒng)后端是通過調(diào)動(dòng)云函數(shù)、云數(shù)據(jù)庫、云存儲三者的支持,實(shí)現(xiàn)前端頁面與數(shù)據(jù)庫的交互,主要使用Node.JS等技術(shù)。系統(tǒng)技術(shù)架構(gòu)圖如圖9所示。4.2系統(tǒng)總體功能設(shè)計(jì)依據(jù)對系統(tǒng)的可行性分析與需求分析,該系統(tǒng)按功能主要?jiǎng)澐譃槭醉摴δ軐?dǎo)航、校園信息介紹、位置點(diǎn)信息、地圖導(dǎo)航、后臺管理五個(gè)功能頁面模塊,小程序功能設(shè)計(jì)架構(gòu)圖圖10所示,各模塊功能說明如下:圖10小程序功能設(shè)計(jì)架構(gòu)圖(1)首頁功能導(dǎo)航:用戶進(jìn)入小程序后直接進(jìn)入該模塊。在首頁中,主要包括各主要功能模塊頁面的跳轉(zhuǎn),及其他校園網(wǎng)頁、小程序、公眾號的鏈接推薦。(2)校園信息介紹:用戶可以通過該模塊獲取關(guān)于學(xué)校的各類信息,包括學(xué)校介紹、校園生活指南、校園地點(diǎn)熱度排名等。(3)位置點(diǎn)信息:用戶在訪問該模塊時(shí),可以通過分類獲取位置點(diǎn)的信息,也可以通過位置點(diǎn)在地圖的位置獲取信息,所獲取的信息包括名稱、別名、簡介、圖片等。(4)校園導(dǎo)航:該模塊是本系統(tǒng)的核心功能模塊,主要功能包括自動(dòng)定位、路徑規(guī)劃、路線展示等。自動(dòng)定位通過移動(dòng)設(shè)備GPS獲取用戶位置并將其在地圖上顯示,路徑規(guī)劃為用戶提供從起點(diǎn)到終點(diǎn)的出行路徑并顯示在地圖上,路線展示向用戶展示校內(nèi)公交路線和游覽推薦路線并顯示在地圖上。(5)后臺管理:該模塊是僅面向管理人員的核心模塊,用于管理本系統(tǒng)中的地點(diǎn)和媒體,對系統(tǒng)中的位置點(diǎn)信息、校園信息進(jìn)行更新維護(hù)。4.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)經(jīng)過可行性和需求分析后,系統(tǒng)確定了主要的實(shí)體信息、每個(gè)實(shí)體的相關(guān)屬性以及實(shí)體與實(shí)體間的關(guān)系。據(jù)分析,本系統(tǒng)的實(shí)例包括用戶、地點(diǎn)類別、地點(diǎn)、媒體文件以及管理員角色,其實(shí)體信息如圖11至圖14所示。圖11地點(diǎn)類別實(shí)體圖圖12媒體文件實(shí)體圖圖13地點(diǎn)實(shí)體圖圖14管理員實(shí)體圖E-R圖又稱實(shí)體-關(guān)系圖,由實(shí)體、屬性和關(guān)系三部分構(gòu)成。根據(jù)本系統(tǒng)中各實(shí)體之間的關(guān)系,本系統(tǒng)的E-R圖如圖15所示。圖15系統(tǒng)E-R圖本系統(tǒng)所采用的微信云開發(fā)中的云數(shù)據(jù)庫為文檔型數(shù)據(jù)庫,適用于存儲JSON格式的數(shù)據(jù)。在該數(shù)據(jù)庫中,一個(gè)數(shù)據(jù)庫可包含多個(gè)集合,而每個(gè)集合又能包含眾多JSON對象。在云開發(fā)控制平臺中可視化界面上,有專門的數(shù)據(jù)庫入口,用于管理云數(shù)據(jù)庫。在本系統(tǒng)中共有4個(gè)集合,分別是地點(diǎn)類別集合(category)、地點(diǎn)集合(site)、媒體文件集合(media)以及管理員集合(admin)。各集合詳細(xì)設(shè)計(jì)如表1至表4所示,其中,各集合默認(rèn)主鍵字段由云數(shù)據(jù)庫隨機(jī)生成。表1地點(diǎn)類別集合設(shè)計(jì)序號字段名類型是否可為空說明1_idstring否默認(rèn)主鍵(隨機(jī)生成)2c_idnumber否地點(diǎn)類別id3namestring否地點(diǎn)類別名稱表2地點(diǎn)集合設(shè)計(jì)序號字段名類型是否可為空說明1_idstring否默認(rèn)主鍵(隨機(jī)生成)2s_idnumber否地點(diǎn)id3c_idnumber否地點(diǎn)所屬類別id4namestring否地點(diǎn)名稱5aliasesstring是地點(diǎn)別名6descstring是地點(diǎn)簡介7imgstring否地點(diǎn)圖片文件路徑8latitudestring否地點(diǎn)緯度坐標(biāo)9longitudestring否地點(diǎn)經(jīng)度坐標(biāo)10browsenumber否地點(diǎn)瀏覽量表3媒體文件集合設(shè)計(jì)序號字段名類型是否可為空說明1_idstring否默認(rèn)主鍵(隨機(jī)生成)2namestring否媒體文件名稱3imgstring否媒體文件路徑表4管理員集合設(shè)計(jì)序號字段名類型是否可為空說明1_idstring否默認(rèn)主鍵(隨機(jī)生成)2openidstring否管理員OpenID3namestring否管理員名稱4.4系統(tǒng)核心功能設(shè)計(jì)4.4.1地圖導(dǎo)航模塊地圖導(dǎo)航模塊主要功能為自動(dòng)定位和路徑規(guī)劃。系統(tǒng)用戶在打開地圖導(dǎo)航模塊前,需確保打開移動(dòng)設(shè)備的GPS定位功能,且同意將位置信息授權(quán)給小程序。用戶打開地圖導(dǎo)航模塊時(shí),系統(tǒng)會從移動(dòng)設(shè)備GPS獲取用戶具體位置數(shù)據(jù),并對其進(jìn)行校內(nèi)判斷,若用戶在校內(nèi),則在地圖上顯示用戶所處位置,若用戶不在校園內(nèi),則提醒用戶不在學(xué)校范圍中,并顯示系統(tǒng)默認(rèn)地點(diǎn)。自動(dòng)定位流程圖如圖16所示。系統(tǒng)用戶在使用路徑規(guī)劃前,需要確定路徑的起點(diǎn)與終點(diǎn)。在本系統(tǒng)中,路徑規(guī)劃的起點(diǎn)默認(rèn)為用戶當(dāng)前位置,若系統(tǒng)檢測到用戶當(dāng)前位置不在校園范圍內(nèi),則路徑規(guī)劃的起點(diǎn)默認(rèn)為系統(tǒng)默認(rèn)地點(diǎn)。用戶可以通過三種方式設(shè)置起點(diǎn)和終點(diǎn):1、用戶通過地圖上方的起點(diǎn)或終點(diǎn)輸入欄中輸入關(guān)鍵詞搜索目標(biāo)地點(diǎn);2、用戶在地圖瀏覽中選擇目標(biāo)地點(diǎn),并將其設(shè)置為起點(diǎn)或終點(diǎn);3、用戶在地點(diǎn)匯總中按照分類選擇目標(biāo)地點(diǎn),并將其設(shè)置為起點(diǎn)或終點(diǎn)。當(dāng)起點(diǎn)與終點(diǎn)均為合法地點(diǎn)時(shí),系統(tǒng)將規(guī)劃合適的路徑,并將規(guī)劃路徑顯示在地圖上。路徑規(guī)劃流程圖如圖17所示。圖16自動(dòng)定位流程圖圖17路徑規(guī)劃流程圖4.4.2后臺管理模塊后臺管理模塊僅面向管理員開放。由于本系統(tǒng)采用的是免密登錄模式,所有用戶在使用本系統(tǒng)時(shí)不需密碼或其他個(gè)人信息,而管理員在進(jìn)入管理后臺前需要確保當(dāng)前OpenID是否擁有管理員權(quán)限。小程序通過編寫好的云函數(shù)get_openid獲取用戶OpenID后,通過云函數(shù)login判斷用戶的OpenID是否在云數(shù)據(jù)庫管理員集合中。若是,則用戶允許進(jìn)入后臺管理模塊;若不是,系統(tǒng)會拒絕用戶進(jìn)入后臺管理模塊且彈出相應(yīng)提示。云開發(fā)登錄時(shí)序圖如圖18所示,后臺登錄流程圖如圖19所示。圖18云開發(fā)登錄時(shí)序圖圖19后臺免密登錄流程圖圖20地點(diǎn)類別管理流程圖管理員完成身份驗(yàn)證成功免密登錄進(jìn)入管理后臺后,可以對系統(tǒng)內(nèi)的地點(diǎn)進(jìn)行管理。本系統(tǒng)的地點(diǎn)管理通過云函數(shù)來實(shí)現(xiàn):云函數(shù)通過判斷所傳輸?shù)臄?shù)據(jù)字段,對不同的數(shù)據(jù)采取不同的處理邏輯。本系統(tǒng)中,各地點(diǎn)從屬于地點(diǎn)類別。管理員在對地點(diǎn)進(jìn)行管理前,需先對地點(diǎn)類別進(jìn)行管理。地點(diǎn)類別管理包含類別新增、類別修改、類別刪除三種操作。在管理員進(jìn)行地點(diǎn)類別新增、地點(diǎn)類別修改時(shí),若地點(diǎn)類別名稱為空,則會提示填寫必填項(xiàng),否則無法操作。在管理員進(jìn)行地點(diǎn)類別刪除時(shí),若當(dāng)前地點(diǎn)類別下仍存在地點(diǎn),則會提示無法刪除。地點(diǎn)類別管理流程圖如圖20所示。地點(diǎn)管理流程邏輯與地點(diǎn)類別管理流程邏輯大致相同,在管理過程中需確保必填項(xiàng)填寫完整。在地點(diǎn)管理中,地點(diǎn)的坐標(biāo)信息不需要手動(dòng)輸入具體的經(jīng)緯度數(shù)值,而是調(diào)用經(jīng)緯度拾取器工具。管理員通過地圖漫游的方式確認(rèn)具體位置后,小程序會將所確定點(diǎn)的位置信息轉(zhuǎn)換為經(jīng)緯度,完成無需手動(dòng)輸入即可獲取地點(diǎn)經(jīng)緯度坐標(biāo)。5系統(tǒng)實(shí)現(xiàn)與測試5.1首頁功能實(shí)現(xiàn)用戶進(jìn)入到小程序后首先會加載進(jìn)入到首頁。首頁如圖21所示,其組成內(nèi)容從上到下分別為輪播圖、校園簡介及校園介紹入口、地圖導(dǎo)航入口、校園指南入口、地點(diǎn)熱度入口、友情鏈接入口、校園天氣。底部為五個(gè)主頁面的選擇欄,分別為地圖、地點(diǎn)匯總、首頁、校園指南、更多。輪播圖通過在視圖組件滑塊視圖容器swiper中,向滑塊視圖容器中放置img形式的swiper-item組件實(shí)現(xiàn)。當(dāng)頁面加載時(shí),監(jiān)聽頁面加載的生命周期函數(shù)會通過圖片的url向云數(shù)據(jù)庫訪問并下載圖片,使其顯示在其序號位的輪播圖圖框中。在輪播圖圖片視圖容器中設(shè)置相應(yīng)的圖片裁剪縮放模式、載入完畢觸發(fā)器,使圖片能正常顯示在容器中;設(shè)置單擊觸摸事件bindtap,使圖片在被單擊觸摸后,根據(jù)圖片url獲取當(dāng)前圖片的http鏈接,通過鏈接下載完整圖片放大瀏覽。學(xué)校簡介、地圖導(dǎo)航、校園指南、地點(diǎn)熱度四個(gè)視圖容器均設(shè)置單擊觸摸事件,使其在被單擊觸摸后跳轉(zhuǎn)到相應(yīng)頁面。友情鏈接視圖容器引入WeUI組件庫的mp-dialog彈窗組件,使其被單擊點(diǎn)擊后彈出彈窗。單擊觸摸相應(yīng)彈窗內(nèi)容,會顯示相應(yīng)鏈接的二維碼,或小程序跳轉(zhuǎn)彈窗頁面。校園天氣需借助外部插件實(shí)現(xiàn),使用wx.request向指定url發(fā)送包含校園的地點(diǎn)坐標(biāo)及提前申請的API密鑰的HTTPS網(wǎng)絡(luò)請求,將返回的溫度、風(fēng)向、風(fēng)力、濕度、氣壓等數(shù)據(jù)傳到相應(yīng)視圖容器中顯示。5.2校園信息功能實(shí)現(xiàn)用戶可以通過校園指南、學(xué)校簡介、地點(diǎn)熱度多個(gè)頁面進(jìn)行校園信息瀏覽。校園指南界面如圖22所示,主體為一個(gè)可滾動(dòng)視圖區(qū),內(nèi)包含多個(gè)可點(diǎn)擊的視圖容器。觸摸單擊相應(yīng)的視圖容器,會獲取相應(yīng)的跳轉(zhuǎn)描點(diǎn)id,通過url傳到跳轉(zhuǎn)頁面,抵達(dá)相應(yīng)介紹內(nèi)容處。學(xué)校介紹界面如圖23所示,由輪播圖、地圖模塊跳轉(zhuǎn)、文字介紹、視頻介紹組成。在觸發(fā)頁面相關(guān)事件處理函數(shù)監(jiān)聽用戶下拉動(dòng)作時(shí),會根據(jù)媒體集合的類型,向云數(shù)據(jù)庫獲取相應(yīng)的媒體資源,使其正確展示在頁面中。圖21首頁界面展示圖22校園指南界面展示地點(diǎn)熱度界面如圖24所示,其實(shí)現(xiàn)通過向云數(shù)據(jù)庫查詢地點(diǎn)集合的瀏覽次數(shù),對各地點(diǎn)進(jìn)行遞減排序,并返回其地點(diǎn)的名稱、別名及瀏覽次數(shù)使其顯示在排行榜單中。圖23學(xué)校介紹界面圖24地點(diǎn)熱度界面5.3位置點(diǎn)信息功能實(shí)現(xiàn)用戶可以在地點(diǎn)匯總界面對位置點(diǎn)進(jìn)行分類查詢,也可以在地圖頁面通過頂端搜索欄和分類欄進(jìn)行查詢。地點(diǎn)匯總界面如圖25所示,左部為地點(diǎn)類別的可滾動(dòng)視圖區(qū),右部為所選類別地點(diǎn)的可滾動(dòng)視圖區(qū)。每個(gè)地點(diǎn)的視圖容器包含了地點(diǎn)圖片、地點(diǎn)名稱與地點(diǎn)別名,觸摸單擊地點(diǎn)視圖容器可觸發(fā)彈窗,將該地點(diǎn)設(shè)為路徑規(guī)劃的起點(diǎn)或終點(diǎn)。在進(jìn)入該頁面時(shí),默認(rèn)選取第一個(gè)地點(diǎn)類別,顯示第一個(gè)類別的地點(diǎn)。在觸發(fā)頁面相關(guān)事件處理函數(shù)監(jiān)聽用戶下拉動(dòng)作時(shí),小程序先通過云函數(shù)對云數(shù)據(jù)庫中的category和site兩個(gè)集合進(jìn)行聯(lián)表查詢,查詢出所有類別下的地點(diǎn),并存入當(dāng)前頁面的緩存。在用戶切換不同類別時(shí),取出緩存中的數(shù)據(jù),并提取當(dāng)前類別下的地點(diǎn)數(shù)據(jù),通過setData()函數(shù)發(fā)送到視圖層。圖25地點(diǎn)匯總界面圖26地圖界面5.4地圖導(dǎo)航功能實(shí)現(xiàn)用戶進(jìn)入小程序地圖頁即可瀏覽校園地圖,可以縮放查看地圖、自動(dòng)定位、查看校內(nèi)地點(diǎn)路線、路徑規(guī)劃等。地圖界面如圖26所示。地圖頁使用map組件生成底層騰訊地圖,將地圖中心點(diǎn)坐標(biāo)設(shè)置為學(xué)校坐標(biāo)顯示學(xué)校區(qū)域,設(shè)置合適的默認(rèn)的比例和極限比例,添加polygons屬性及點(diǎn)數(shù)據(jù)使學(xué)校范圍顯示在地圖上,設(shè)置show-compass和show-scale屬性使指南針、比例尺正確顯示在地圖中,調(diào)整boudary數(shù)據(jù)以供系統(tǒng)判斷用戶是否在學(xué)校范圍內(nèi)。調(diào)用騰訊位置服務(wù)微信小程序JavaScriptSDK,正確配置SDK密鑰后,使用setBoundary()函數(shù)設(shè)置可視地圖邊界。當(dāng)用戶初次使用小程序進(jìn)入地圖頁時(shí),會收到小程序的定位權(quán)限授權(quán)申請,用于獲取用戶移動(dòng)設(shè)備定位系統(tǒng)數(shù)據(jù)許可。獲得用戶授權(quán)后,若用戶當(dāng)前位置在所設(shè)置的學(xué)校范圍內(nèi),會在地圖上用紅色定位圖標(biāo)顯示當(dāng)前位置;若用戶不在學(xué)校范圍內(nèi),會顯示默認(rèn)位置(圖書館)為紅色定位圖標(biāo)。當(dāng)用戶位置發(fā)生改變時(shí),點(diǎn)擊地圖右下方定位圖標(biāo)即可重新進(jìn)行定位,更新所在位置。具體實(shí)現(xiàn)方式為:使用wx.getLocation()接口向移動(dòng)設(shè)備的定位系統(tǒng)請求獲取用戶位置信息數(shù)據(jù),根據(jù)所在位置的經(jīng)緯度數(shù)據(jù)與學(xué)校范圍經(jīng)緯度數(shù)據(jù)判斷用戶當(dāng)前是否在學(xué)校區(qū)域內(nèi)。如果用戶位置在學(xué)校區(qū)域,將用戶位置寫入markers;如果不在學(xué)校,將默認(rèn)位置(圖書館)寫入markers。最后通過includePoints()接口將markers中的地點(diǎn)縮放視野展示到地圖上。自動(dòng)定位核心代碼如下所示:location(){wx.getLocation({type:'gcj02',success:function(res){varnowlatitude=res.latitudevarnowlongitude=res.longitudeconsole.log("當(dāng)前位置坐標(biāo)",nowlatitude,nowlongitude)if(nowlatitude>school_boundary.south&&nowlatitude<school_boundary.north&&nowlongitude>school_boundary.west&&nowlongitude<school_boundary.east){that.setData({mylocationmarker:{id:0,latitude:nowlatitude,longitude:nowlongitude,callout:{content:"當(dāng)前位置",display:'ALWAYS',},joinCluster:true,},start:{name:"當(dāng)前位置",latitude:nowlatitude,longitude:nowlongitude,}})}else{that.setData({mylocationmarker:{id:0,latitude:default_point.latitude,longitude:default_point.longitude,callout:{content:""+default_+"",display:'ALWAYS',},joinCluster:true,},start:{name:default_,latitude:default_point.latitude,longitude:default_point.longitude,}})wx.showToast({title:'當(dāng)前位置不在校區(qū)內(nèi)\n默認(rèn)位置設(shè)為'+that.data.default_,icon:'none',duration:2000})}that.changeCategory(static_category)},fail:function(err){wx.showToast({title:'請不要頻繁定位\n5秒后再試試吧',icon:'none',duration:2000})that.changeCategory(static_category)}})},includePoints(){varpoints=Array.from(this.data.polyline[0].points)this.mapCtx=wx.createMapContext('map')this.mapCtx.includePoints({padding:[100,60,60,60],points:points,})},地圖頁的地圖默認(rèn)顯示第一個(gè)類別下的地點(diǎn)。用戶可以通過點(diǎn)擊地圖頁頂部的可滾動(dòng)視圖區(qū)類別欄切換所顯示類別,地圖會根據(jù)所選類別實(shí)時(shí)縮放展示當(dāng)前類別下的地點(diǎn),點(diǎn)擊地圖上的地點(diǎn)可以在彈出地點(diǎn)介紹彈窗。具體實(shí)現(xiàn)方式為:小程序監(jiān)聽頁面加載頁面函數(shù)onLoad()處添加云函數(shù)聯(lián)表查詢,通過查詢云數(shù)據(jù)庫中的category和site兩個(gè)集合查詢出所有類別下的地點(diǎn),并存入當(dāng)前頁面的緩存。在用戶切換不同類別時(shí),取出緩存中的數(shù)據(jù),并提取當(dāng)前類別下的地點(diǎn)數(shù)據(jù),寫入markers再通過includePoints()接口將地點(diǎn)縮放視野展示到地圖上。用戶每點(diǎn)擊一次地點(diǎn),其sites集合中的browse瀏覽量屬性會自動(dòng)加一,此設(shè)置將會對地點(diǎn)熱度排行產(chǎn)生影響。圖27路線展示界面圖圖28路徑規(guī)劃界面圖當(dāng)類別切換到特定類別時(shí),除了會將makers傳輸?shù)揭晥D層,還會將polyline屬性中的各數(shù)據(jù)傳輸?shù)揭晥D層,達(dá)到展示路線的效果。路線展示效果如圖27所示。用戶在地圖頁頂部信息欄進(jìn)入搜索頁。在搜索頁頂部的搜索欄中輸入內(nèi)容,可以進(jìn)行地點(diǎn)搜索,并顯示查詢結(jié)果。如果查找失敗,小程序會彈出相應(yīng)的提示框提示用戶。點(diǎn)擊查詢結(jié)果后,頁面會跳轉(zhuǎn)到地圖頁縮放到相應(yīng)地點(diǎn)并彈出地點(diǎn)介紹彈窗,可將所選地點(diǎn)選作起點(diǎn)或終點(diǎn)。具體實(shí)現(xiàn)方式為:小程序?qū)⒂脩糨斎雰?nèi)容與云數(shù)據(jù)庫site集合中的name和aliases字段進(jìn)行匹配并返回搜索結(jié)果。在搜索頁點(diǎn)擊搜索結(jié)果時(shí),小程序使用wx.setStorage()接口將地點(diǎn)的id存入緩存,跳轉(zhuǎn)到地圖頁時(shí)在生命周期監(jiān)聽頁面顯示函數(shù)onshow()中使用wx.getStorage()接口讀取緩存并將其設(shè)為終點(diǎn)。路徑規(guī)劃效果如圖28所示。用戶在地圖頁設(shè)置好起點(diǎn)和終點(diǎn)后便可點(diǎn)擊提交進(jìn)行路線規(guī)劃。如果輸入內(nèi)容非法,如起點(diǎn)終點(diǎn)相同,或起點(diǎn)終點(diǎn)為空,小程序會彈出相應(yīng)提示框提示用戶。具體實(shí)現(xiàn)方式為:小程序調(diào)用騰訊位置服務(wù)JavaScriptSDK,向其傳遞起點(diǎn)和終點(diǎn)的坐標(biāo)信息,進(jìn)行路線規(guī)劃,并將返回的數(shù)據(jù)顯示在地圖頁上。用戶點(diǎn)擊搜索欄右側(cè)的交換按鈕,可以將起點(diǎn)與終點(diǎn)輸入欄的文本內(nèi)容交換。路徑規(guī)劃核心代碼如下所示:formSubmit(){var_this=this;if(!=""){letstart=this.data.startletend=this.data.end}qqmapsdk.direction({//調(diào)用距離計(jì)算接口mode:'walking',//可選值:'driving'、'walking'、'bicycling',不填默認(rèn):'driving'from:start.latitude+","+start.longitude,//from參數(shù)不填默認(rèn)當(dāng)前地址to:end.latitude+","+end.longitude,success:function(res){varret=res;varduration=ret.result.routes[0].duration;vardistance=ret.result.routes[0].distance;console.log("時(shí)間",duration,"距離",distance)varcoors=ret.result.routes[0].polyline,pl=[{latitude:start.latitude,longitude:start.longitude}];//坐標(biāo)解壓(返回的點(diǎn)串坐標(biāo),通過前向差分進(jìn)行壓縮)varkr=1000000;for(vari=2;i<coors.length;i++){coors[i]=Number(coors[i-2])+Number(coors[i])/kr;}//將解壓后的坐標(biāo)放入點(diǎn)串?dāng)?shù)組pl中for(vari=0;i<coors.length;i+=2){pl.push({latitude:coors[i],longitude:coors[i+1]})}pl.push({latitude:end.latitude,longitude:end.longitude})console.log("路線",pl)//設(shè)置polyline屬性,將路線顯示出來,將解壓坐標(biāo)第一個(gè)數(shù)據(jù)作為起點(diǎn)_this.setData({polyline:[{}],steps:ret.result.routes[0].steps,distance:distance,duration:duration})_this.includePoints()_this.moveAlong()},5.5后臺管理功能實(shí)現(xiàn)管理員通過更多界面中的管理界面按鈕進(jìn)入管理界面。小程序通過云函數(shù)getOpenid自動(dòng)獲取當(dāng)前用戶的OpenID,判斷當(dāng)前用戶的OpenID是否在admin集合中。如果在,系統(tǒng)彈出提示框允許進(jìn)入管理界面,并跳轉(zhuǎn)到管理界面中;如果不在,系統(tǒng)彈出提示框提示當(dāng)前用戶沒有后臺權(quán)限并停留在當(dāng)前頁面。在管理員免密登錄的整個(gè)過程中,管理員不需要手動(dòng)輸入賬號密碼和授權(quán)信息便可進(jìn)入管理頁面。管理員免密登錄進(jìn)入后臺管理界面后進(jìn)入地點(diǎn)類別管理界面,可對地點(diǎn)類別進(jìn)行管理。實(shí)現(xiàn)方式為:編寫多個(gè)云函數(shù),云函數(shù)通過判斷所傳輸?shù)臄?shù)據(jù)字段類型,對不同的數(shù)據(jù)采取不同的處理邏輯,如新增、修改、刪除。管理員對類別進(jìn)行新增時(shí),若類別名稱為空,則會提示需要填寫,且不允許新增。當(dāng)管理員修改類別時(shí),若類別名稱為空,則會提示需要填寫,且不允許修改。當(dāng)管理員刪除類別時(shí),若當(dāng)前類別下存在地點(diǎn),則會提示并不允許刪除。地點(diǎn)管理功能和類別管理功能的構(gòu)造基本相同,實(shí)現(xiàn)方式為:編寫多個(gè)云函數(shù),云函數(shù)通過判斷所傳輸?shù)臄?shù)據(jù)字段類型,對不同的數(shù)據(jù)采取不同的處理邏輯,如新增、修改、刪除。當(dāng)管理員新增地點(diǎn)時(shí),若地點(diǎn)名稱和地點(diǎn)坐標(biāo)為空,則會提示需要填寫并不允許新增。當(dāng)管理員修改地點(diǎn)時(shí),若地點(diǎn)名稱和地點(diǎn)坐標(biāo)為空,則會提示需要填寫并不允許修改。在新增和修改地點(diǎn)時(shí),地點(diǎn)的坐標(biāo)獲取方式為使用經(jīng)緯度拾取器工具。地點(diǎn)的坐標(biāo)獲取方式為:前往地圖選點(diǎn)頁面選擇地點(diǎn),以地圖漫游的方式確認(rèn)地點(diǎn)后,小程序會通過MapContext.getCenterLocation接口獲取當(dāng)前地圖中心的經(jīng)緯度并將其傳回地點(diǎn)坐標(biāo)欄。管理員免密登錄進(jìn)入后臺管理后進(jìn)入媒體文件管理界面,可對媒體文件進(jìn)行管理。實(shí)現(xiàn)方式為:編寫多個(gè)云函數(shù),云函數(shù)通過判斷所傳輸?shù)臄?shù)據(jù)字段類型,對不同的數(shù)據(jù)采取不同的處理邏輯。對媒體的管理操作有:對地圖進(jìn)行上傳覆蓋操作;對封面進(jìn)行上傳覆蓋操作;對輪播圖進(jìn)行上傳覆蓋操作;對視頻進(jìn)行上傳覆蓋操作。當(dāng)管理員完成相應(yīng)媒體的上傳操作時(shí),會在預(yù)覽處顯示預(yù)覽效果以供參考,確定上傳后會在實(shí)際效果處顯示實(shí)際效果。5.6系統(tǒng)功能測試本小節(jié)對小程序校園導(dǎo)航系統(tǒng)的各個(gè)功能進(jìn)行測試,下面分別使用測試用例表進(jìn)行闡述。測試環(huán)境如表5所示,其他測試用例表如表6至表9所示。表5開發(fā)與運(yùn)行環(huán)境運(yùn)行環(huán)境版本/型號開發(fā)平臺微信開發(fā)者平臺測試操作系統(tǒng)IOS測試設(shè)備型號iPhone12mini調(diào)用基礎(chǔ)庫2.24.1騰訊位置服務(wù)微信小程序JavaScript1SDK1.2表6首頁功能測試用例表輸入/操作期望結(jié)果點(diǎn)擊輪播圖圖片全屏打開輪播圖圖片與期望一致點(diǎn)擊頁面跳轉(zhuǎn)按鈕正確跳轉(zhuǎn)到指定頁面與期望一致點(diǎn)擊友情鏈接按鈕正確打開二維碼鏈接或彈出小程序跳轉(zhuǎn)彈窗與期望一致表7校園信息功能測試用例表輸入/操作期望結(jié)果點(diǎn)擊學(xué)校介紹視頻視頻正常播放與期望一致點(diǎn)擊校園指南事項(xiàng)正確跳轉(zhuǎn)到指定頁面位置與期望一致在瀏覽地點(diǎn)先后查看地點(diǎn)熱度頁面地點(diǎn)排行與瀏覽量發(fā)生相應(yīng)變化與期望一致表8地點(diǎn)信息功能測試用例表輸入/操作期望結(jié)果點(diǎn)擊任意地點(diǎn)分類顯示所屬類別地點(diǎn)與期望一致點(diǎn)擊任意地點(diǎn)彈出地點(diǎn)介紹彈窗與期望一致設(shè)置地點(diǎn)為起點(diǎn)/終點(diǎn)將地點(diǎn)正確傳遞到起點(diǎn)/終點(diǎn)與期望一致表9地圖導(dǎo)航功能測試用例表輸入/操作期望結(jié)果打開地圖頁面地圖正確渲染與期望一致移動(dòng)設(shè)備獲取用戶位置正確判斷用戶位置并顯示與期望一致切換地點(diǎn)類別地圖上顯示相應(yīng)類別的地點(diǎn)與期望一致切換路線類別地圖上顯示相應(yīng)類別的地點(diǎn)與路線與期望一致點(diǎn)擊任意地點(diǎn)彈出地點(diǎn)介紹彈窗與期望一致輸入關(guān)鍵字搜索地點(diǎn)(數(shù)據(jù)庫存在匹配關(guān)鍵字)獲取并顯示地點(diǎn)信息與期望一致輸入關(guān)鍵字搜索地點(diǎn)(數(shù)據(jù)庫不存在匹配關(guān)鍵字)提示未找到地點(diǎn)與期望一致未輸入關(guān)鍵字搜索地點(diǎn)提示輸入關(guān)鍵字與期望一致點(diǎn)擊交換起點(diǎn)和終點(diǎn)按鈕起點(diǎn)和終點(diǎn)交換與期望一致點(diǎn)擊路徑規(guī)劃執(zhí)行(起點(diǎn)終點(diǎn)不相同)跳轉(zhuǎn)到路線規(guī)劃頁面顯示路線與期望一致點(diǎn)擊路徑規(guī)劃執(zhí)行(起點(diǎn)終點(diǎn)相同)彈出提示框提示起點(diǎn)和終點(diǎn)不能相同與期望一致點(diǎn)擊路徑規(guī)劃執(zhí)行(起點(diǎn)終點(diǎn)未選擇)彈出提示框提示選擇起點(diǎn)/終點(diǎn)與期望一致表10后臺管理功能測試用例表輸入/操作期望結(jié)果管理員點(diǎn)擊管理界面按鈕跳轉(zhuǎn)到管理界面與期望一致用戶點(diǎn)擊管理界面按鈕彈出提示框提示當(dāng)前用戶不是管理員與期望一致新增類別時(shí)填寫類別名稱進(jìn)行類別新增并提示成功與期望一致新增類別時(shí)不填寫類別名稱彈出提示框提示類別名稱必填與期望一致修改類別時(shí)填寫類別名稱進(jìn)行類別修改并提示成功與期望一致修改類別時(shí)不填寫類別名稱彈出提示框提示類別名稱必填與期望一致刪除類別(當(dāng)前類別下沒有地點(diǎn))進(jìn)行類別刪除并提示成功與期望一致刪除類別(當(dāng)前類別下有地點(diǎn))彈出提示框提示當(dāng)前類別下有地點(diǎn),不能刪除與期望一致新增地點(diǎn)時(shí)填寫地點(diǎn)名稱、選擇地點(diǎn)坐標(biāo)進(jìn)行地點(diǎn)新增并提示成功與期望一致新增地點(diǎn)時(shí)不填寫地點(diǎn)名稱或不選擇地點(diǎn)坐標(biāo)彈出提示框提示地點(diǎn)名稱必填、地點(diǎn)坐標(biāo)必選與期望一致修改地點(diǎn)時(shí)填寫地點(diǎn)名稱、選擇地點(diǎn)坐標(biāo)進(jìn)行地點(diǎn)修改并提示成功與期望一致修改地點(diǎn)時(shí)不填寫地點(diǎn)名稱或不選擇地點(diǎn)坐標(biāo)彈出提示框提示地點(diǎn)名稱必填、地點(diǎn)坐標(biāo)必選與期望一致上傳圖片圖片正確顯示并覆蓋舊資源與期望一致上傳視頻視頻可正常播放并覆蓋舊資源與期望一致6總結(jié)與展望6.1總結(jié)本文從社會、學(xué)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 硝酸生產(chǎn)工崗后強(qiáng)化考核試卷含答案
- 塔盤制煉工操作評估測試考核試卷含答案
- 生活垃圾堆肥操作工安全文明模擬考核試卷含答案
- 電工崗前技術(shù)應(yīng)用考核試卷含答案
- 煉鋼準(zhǔn)備工安全技能考核試卷含答案
- 花卉園藝工崗前核心實(shí)操考核試卷含答案
- 膠帶機(jī)移設(shè)機(jī)司機(jī)創(chuàng)新應(yīng)用考核試卷含答案
- 下料工安全操作知識考核試卷含答案
- 真空電子器件化學(xué)零件制造工班組評比模擬考核試卷含答案
- 感光材料乳劑熔化工創(chuàng)新意識水平考核試卷含答案
- 骨科老年患者譫妄課件
- 《熱力管道用金屬波紋管補(bǔ)償器》
- 2025年中國汽輪機(jī)導(dǎo)葉片市場調(diào)查研究報(bào)告
- 中班幼兒戶外游戲活動(dòng)實(shí)施現(xiàn)狀研究-以綿陽市Y幼兒園為例
- 特色休閑農(nóng)場設(shè)計(jì)規(guī)劃方案
- 采購部門月度匯報(bào)
- 新華書店管理辦法
- 檔案專業(yè)人員公司招聘筆試題庫及答案
- 工程竣工移交單(移交甲方、物業(yè))
- 來料檢驗(yàn)控制程序(含表格)
評論
0/150
提交評論