田晨池 谷攀登 潘家杰 陳森 黎敏
摘要:微信小程序是一種不用下載就能使用的應(yīng)用,用戶掃一掃或搜一下即可打開應(yīng)用,節(jié)省時間和流量,具備便捷、輕量、社交推廣的特點(diǎn)。私人定制旅游攻略平臺是從當(dāng)今旅游業(yè)發(fā)展的現(xiàn)狀和人們的需求出發(fā),用戶不僅可以通過搜索獲取景點(diǎn)的圖片、介紹,查看周邊餐廳酒店,以此為依據(jù)來規(guī)劃自己的旅游路線,還能通過算法將用戶選擇的景點(diǎn)統(tǒng)一起來,規(guī)劃出最優(yōu)的旅行路線。開發(fā)基于微信小程序的私人定制旅游攻略平臺,一是提高用戶體驗(yàn),便捷使用,二是實(shí)現(xiàn)智能旅游規(guī)劃,優(yōu)化人們的出行方案。
關(guān)鍵詞:旅游攻略,小程序,私人定制,路線規(guī)劃
0 引 言
在2020年全球新冠疫情的沖擊及我國全面建成小康社會的背景下,經(jīng)過全國人民齊心協(xié)力,共同跨越疫情的災(zāi)難影響,我國的經(jīng)濟(jì)發(fā)展逐步回升,并持續(xù)發(fā)展。國內(nèi)旅游行業(yè)也初步恢復(fù)生機(jī),同時國際環(huán)境中疫情仍在肆虐,因此,國內(nèi)旅游成了人們消遣、放松的首項(xiàng)選擇。微信小程序自2017年正式推出以來,因其開發(fā)成本低,使用便捷等特點(diǎn)得到廣泛應(yīng)用,滲透到了各種行業(yè);并且微信的受眾廣泛,使用比例高。因此,本文開發(fā)一個私人定制旅游攻略平臺微信小程序,符合人們使用習(xí)慣。
1 基于微信小程序的私人定制旅游攻略平臺系統(tǒng)總體設(shè)計(jì)
前面提到私人制定旅游攻略平臺的設(shè)計(jì)要秉持用戶為中心的理念,因此私人制定旅游攻略平臺的功能必須是用戶需要的功能,并且一進(jìn)入平臺就能清晰了解所有功能,而不需要用戶花費(fèi)大量時間去研究平臺的各個功能如何使用。本文的私人制定旅游攻略平臺具備以下6項(xiàng)功能[1]:景點(diǎn)信息展示、景點(diǎn)周邊餐廳及酒店展示、景點(diǎn)信息檢索、景點(diǎn)及其周邊餐廳酒店添加、路線規(guī)劃、路線展示。
(1)景點(diǎn)信息展示,用于顯示我國境內(nèi)各景點(diǎn)的位置、介紹、圖片展示。
(2)景點(diǎn)信息檢索,用于搜索各景點(diǎn),查詢其信息。
(3)景點(diǎn)周邊餐廳及酒店展示,用于顯示各景點(diǎn)周邊的餐廳及酒店的位置、介紹、圖片展示。
(4)景點(diǎn)及其周邊餐廳酒店添加,用戶可以選擇自己喜歡的景點(diǎn)、酒店、餐廳,通過添加按鈕加入到我的路線中,傳入后臺通過算法規(guī)劃路線方案。
(5)路線規(guī)劃,是私人制定旅游攻略平臺的核心模塊,通過算法規(guī)劃出最優(yōu)路線。
(6)路線展示,將用戶選擇的景點(diǎn)、酒店、餐廳通過算法規(guī)劃好的最優(yōu)路線展示出來,供用戶參考。
2 數(shù)據(jù)庫設(shè)計(jì)
2.1數(shù)據(jù)庫[2]
數(shù)據(jù)庫:shanhexin
2.1.1數(shù)據(jù)庫優(yōu)化
我的路線:my_tourist
id,uid(用戶id),title,tourist(路線),walk_time(步行時間)
create table if not exists my_restaurant(
id int unsigned auto_increment,
uid int unsigned comment "用戶id",
title varchar(255) default "" comment "路線標(biāo)題",
tourist varchar(255) default "" comment "旅游路線",
walk_time varchar(255) default "" comment "步行時間",
primary key(id)
)engine=InnoDB default charset=utf8;
3 貪心算法
貪心算法[3],又名貪婪算法(學(xué)校里老教授都喜歡叫貪婪算法),是一種常用的求解最優(yōu)化問題的簡單、迅速的算法。貪心算法總是做出在當(dāng)前看來最好的選擇,它所做的每一個在當(dāng)前狀態(tài)下某種意義上是最好的選擇即貪心選擇,并希望通過每次所作的貪心選擇導(dǎo)致最終得到問題最優(yōu)解。
3.1 貪心算法的基本思路
從問題的某一個初始解觸發(fā)逐步逼近給定的目標(biāo),以盡可能快地求得更好的解。當(dāng)達(dá)到某算法中的某一步不能再繼續(xù)前進(jìn)時,算法停止。大致步驟如下:
1)建立數(shù)學(xué)模型來描述問題;
2)把求解的問題分成若干個子問題
3)對每一個子問題求解,得到子問題的局部最優(yōu)解
4)把子問題的局部最優(yōu)解合成原問題的一個解
3.1.1 貪心算法的實(shí)現(xiàn)框架[4]
貪心算法沒有固定的算法框架,算法設(shè)計(jì)的關(guān)鍵是貪心策略的選擇,而貪心策略適用的前提是:局部最優(yōu)策略能導(dǎo)致產(chǎn)生全局最優(yōu)解。
從問題的某一初始解出發(fā);
while (能朝給定總目標(biāo)前進(jìn)一步)
{
利用可行的決策,求出可行解的一個解元素;
}
由所有解元素組合成問題的一個可行解;
3.2 騰訊地圖API接口設(shè)計(jì)
通過微信小程序與騰訊地圖JavaScript SDK對接,添加map組件,使用騰訊地圖微信小程序插件進(jìn)行路線規(guī)劃,先要進(jìn)行環(huán)境配置。
// 引入SDK核心類var QQMapWX = require('xxx/qqmap-wx.js');
// 實(shí)例化API核心類var qqmapsdk = new QQMapWX({
key: '開發(fā)密鑰(key)' // 必填
});
使用direction(options:Object)提供路線規(guī)劃能力,mode類型為walking模式,需下載 jssdkv1.2最新版本。根據(jù)用戶選擇的景點(diǎn)的經(jīng)緯度放在gcj02坐標(biāo)系中,lat<緯度>,lng<經(jīng)度>(例:from: ‘39.984060,116.307520’),lat,lng;lat,lng… (經(jīng)度與緯度用英文逗號分隔,坐標(biāo)間用英文分號分隔)
(例:to: ‘39.984060,116.307520;39.984060,116.507520’)
通過核心算法進(jìn)行路線規(guī)劃。事件觸發(fā),調(diào)用接口,調(diào)用calculateDistance(options:Object)接口計(jì)算用戶選擇的景點(diǎn)之間的步行距離,通過屬性success, fail, complete的回調(diào)參數(shù)來接收調(diào)用結(jié)果,success的回調(diào)參數(shù)可以有2個,第1個參數(shù)接收調(diào)用結(jié)果,第2個參數(shù)控制返回處理后的數(shù)據(jù)(非必須參數(shù)),示例:success:function(res,data)。如果status為0,message為"query ok",為正常,得到distance結(jié)果并輸出景點(diǎn)之間的距離,/ws/distance/v1 距離計(jì)算:步行,再利用正常人的步行速度大約為1.3m/s,根據(jù)距離/速度=時間的公式估算出到景點(diǎn)的時間。再根據(jù)微信小程序map組件中的polyline屬性畫出景點(diǎn)路線規(guī)劃圖。
3.3 TSP算法流程圖
4 系統(tǒng)實(shí)現(xiàn)
我們采用了微信Web開發(fā)者工具和IntelliJ IDEA開發(fā)工具,開發(fā)了一個私人定制旅游攻略平臺,其中包含了景點(diǎn)、周邊餐廳酒店信息展示、私人旅游路線選擇、最優(yōu)路線規(guī)劃的功能,編程語言是JavaScript,WXML,WXSS,及Spring Boot框架[5],利用騰訊地圖API展示各景點(diǎn)。當(dāng)用戶使用本微信小程序時,首先進(jìn)入的是山河行小程序的首頁,在首頁可以搜索景點(diǎn)及查看已擬定的旅游路線[6]。通過搜索景點(diǎn)后,可以在騰訊地圖上看到各景點(diǎn)的標(biāo)記,點(diǎn)擊標(biāo)記即可查看景點(diǎn)信息、圖片及周邊餐廳酒店的信息、圖片;并且可以添加該景點(diǎn)到我的路線中。用戶可以在我的路線頁面中查看選擇的景區(qū)及規(guī)劃好的最優(yōu)線路[7]。
5 結(jié)論
隨著旅游業(yè)發(fā)展迅猛,產(chǎn)業(yè)規(guī)模持續(xù)擴(kuò)大,產(chǎn)品體系日益完善,市場秩序不斷優(yōu)化。通過大數(shù)據(jù)分析、算法等人工智能方式來規(guī)劃、優(yōu)化出適合用戶的個性化旅游出行路線攻略,將會為人們的旅游出行減少負(fù)擔(dān),帶來更多的便利,是現(xiàn)代旅游的趨勢之一。本系統(tǒng)在這方面做了有益的嘗試。下一步的研究是利用大數(shù)據(jù)算法,以及研究多種匹配算法,自動更新各景點(diǎn)信息及景點(diǎn)推薦功能,以便更智能準(zhǔn)確滿足用戶的需求.
參考文獻(xiàn):
[1]鄔錦雯,孫靜蕾,李敏. 基于熵權(quán)法的微信小程序界面設(shè)計(jì)可用性評價研究[J]. 包裝工程,2020(07):1-15.
[2]數(shù)據(jù)庫系統(tǒng)概論(第五版) 王珊 薩師煊 高等教育出版社 ISBN 978-7-04-040664-1
[3]Java編程思想 第四版 Bruce Eckel 機(jī)械工業(yè)出版社 ISBN 978-7-111-21250-8
[4]Java從入門到項(xiàng)目實(shí)踐(超值版) 聚慕課教育研發(fā)中心 清華大學(xué)出版社 ISBN 978-7-302-50153-4.
[5]Spring Boot企業(yè)級開發(fā)教程 黑馬程序員 中國工信出版集團(tuán) ISBN 978-7-115-51279-6
[6]旅游線路設(shè)計(jì)(第3版全國旅游專業(yè)規(guī)劃教材) 教育旅游出版社 ISBN 978-7-563-71316-5
[7]區(qū)域旅游規(guī)劃原理 吳必虎 中國旅游出版社 ISBN 978-7-503-21825-5
作者簡介:田晨池(2000-),男,廣東惠州人,漢族,本科,南昌工程學(xué)院,軟件工程專業(yè)。