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