999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android的個性化旅游路線規劃系統設計與實現

2021-09-23 04:01:11徐永康高文超廖宏科崔長潤丁雨萌劉旭昭左家昌
電腦知識與技術 2021年24期

徐永康 高文超 廖宏科 崔長潤 丁雨萌 劉旭昭 左家昌

摘要:個人出行逐漸成為人們出游的首選,但是市場上缺少可以為用戶深度定制旅行路線的軟件。該文介紹了一種基于SpringBoot后端和Android客戶端的個性化旅游路線推薦系統,實現了北京區域內景點的推薦功能。經過測試,可以實現用戶登錄注冊以及路線規劃功能。

關鍵詞:Android;SpringBoot;Mybatis;個性化旅游;TSP

1 背景

隨著移動互聯網的發展和人們生活水平的提高,旅游逐漸成為民眾娛樂的重要途徑。然而如今的旅游規劃軟件大多是起到預定門票酒店的功能,并不能發揮路線規劃和景點推薦的作用。本文將介紹基于安卓平臺的個性化旅游路線推薦軟件的設計與實現。

2 當今個人旅游系統發展現狀

在當今的移動互聯網時代,越來越多的在線旅游服務如雨后春筍般涌現。目前這些旅游類的服務大可以分為兩類。 第一類是提供基本的訂機票、火車票、訂酒店之類的服務。作為代表的應用主要有:攜程、去哪旅行、飛豬、藝龍旅行、同程旅行等。這些應用往往是將大量的信息提供給用戶,讓用戶自行篩選,服務商較為被動,優點是信息較為全面。可見此類的服務還有很大的提升空間。 第二類則是為用戶提供旅行的行程規劃服務,屬于傳統的旅行社的線上升級版,提供成套的解決方案。代表App有:氫氣球旅行,蟬游記,面包旅行,行程助手,百度旅游。這類應用可以初步對信息進行篩選,效率相比第一種有一定的提高。但是隨旅行社出游并不靈活,可定制化程度比較低,仍有提升空間。 在未來旅游類 App 的發展趨向將是強自動化的。軟件應該盡可能變被動為主動,幫用戶完成旅行的整體大致規劃,提供私人的成套的旅行解決方案。讓系統依據用戶的出行方式、出行人數、個人偏好來自動地為用戶規劃好行程,為用戶提供一整套出行方案,降低用戶的決策成本。

3 路線規劃算法(蟻群算法)

TSP問題(Travel Salesperson Problem即旅行商問題)是一種NP-hard問題,在大型事件中很難獲得最優解,一般需要啟發式算法就近似解,如遺傳算法(GA),蟻群算法(ACO),微粒群算法(PSO)。蟻群算法是一種以螞蟻覓食行為為依據逐漸發展出來的一種啟發式優化算法[1],算法的目的是尋找優化路徑,最初是用來解決TSP問題而產生的。該算法在系統中起到了為用戶安排游覽路徑的作用。

4 所用技術

4.1 安卓平臺

安卓是一種基于Linux內核的自由開源的操作系統。主要使用于移動設備,使用java語言作為開發語言[2]。Android的開發包括四大組件:活動(Activity),服務(Service),廣播接收器(Broadcast Receiver),內容提供商(Content Provider)。

Activity中包含了所有程序的運行流程,是Android 當中最基本的模塊。每一個頁面需要通過setContentView()指定界面布局。

4.2 百度地圖sdk

百度地圖API是一套應用程序接口,為開發者提供基于百度地圖的各種功能,涵蓋iOS、Andriod、Web服務等多種版本,提供基本地圖、位置搜索、周邊搜索、公交路線查詢等功能。只需導入百度地圖的sdk即可使用。 景點、路線和用戶數據存儲在云服務器端,云服務器鏈接mysql云數據庫存儲數據。景點的初始信息一部分手動導入,一部分通過爬蟲獲取以后存儲在服務器端,供App調用。

4.3 spring boot

Spring框架是Java平臺上的一種開源應用框架,而SpringBoot 是大量開發框架的整合,它簡化了Spring大部分的繁雜配置工作[3]。SpringBoot的整合解決了依賴包之間的沖突和不可靠性等問題。大大簡化了開發人員在后端開發的難度,支持jar項目打包方式,可以實現項目快速部署。Springboot的總體框架如圖1所示。

實體層(entity)主要用于和數據庫對象相對應的屬性,需要有set/get方法,無參和有參的構造函數。控制層(controller)實現具體的模塊流程控制,主要是調用service層內的接口實現,負責從前端接受請求。業務層(service)和持久層(dao)一樣都是先設計接口,再創建要實現的類,然后在配置文件中進行配置其實現的關聯[4]。接下來就可以在service層調用接口進行業務邏輯應用的處理。封裝Service層的業務邏輯有利于業務邏輯的獨立性和重復利用性。持久層與數據庫進行聯系,持久層的數據源和數據庫連接的參數都是在配置文件中進行配置的。

YAML是一種基于Unicode容易閱讀,容易和腳本語言交互的,用來表達資料序列的編程語言。文件后綴為yml。本項目使用application.yml作為配置文件,相較于application.properties,YAML文件具有樹狀結構以及更易于理解的特點。此外,YAML還具有編程語言可移植性的優點。

在本項目內,controller層調用了Service層的方法,Service層調用Dao層的方法,其中調用的參數是使用Entity層進行傳遞的。

5 數據庫結構設計

系統的數據庫設計有三個表,分別是用戶信息表(表1),景點數據表(表2)和公共交通路程時間矩陣表(表3)。景點類型存儲在景點數據表的type列中,所有景點一共分為6種類型,分別是博物館,文物古跡,公園,游樂園,風景區和其他。

6 Android應用程序設計

本系統的總體框架如下:springboot作為服務端,提供數據庫查詢和數據返回功能。Android應用提供客戶端服務。

服務端使用Maven 對項目進行構建、依賴管理。dao層(data access object)使用Mybatis框架實現,service層和controller層用于后端操作邏輯控制。服務端主要實現數據庫的維護工作。

主站蜘蛛池模板: h视频在线观看网站| 色婷婷亚洲综合五月| 亚洲国产天堂在线观看| 丰满的少妇人妻无码区| 91一级片| 午夜高清国产拍精品| 熟妇无码人妻| 热久久这里是精品6免费观看| 国产特级毛片aaaaaa| 日韩精品资源| 欧美黄色a| 97视频精品全国在线观看| 2021国产乱人伦在线播放| 亚洲福利视频一区二区| 亚洲国产精品无码AV| 欧美色视频日本| www.99精品视频在线播放| 四虎影视8848永久精品| 黄色国产在线| 9啪在线视频| 91精品国产91欠久久久久| 久久精品无码国产一区二区三区| 熟妇人妻无乱码中文字幕真矢织江 | 成人a免费α片在线视频网站| 三级毛片在线播放| 九九九国产| 一区二区午夜| 国产在线精品99一区不卡| 亚洲精品免费网站| 欧美亚洲综合免费精品高清在线观看| 一区二区午夜| 久久综合色视频| 狠狠综合久久| 亚洲AⅤ永久无码精品毛片| 久无码久无码av无码| 99这里只有精品免费视频| 国产成人精品免费av| 国产精品美女自慰喷水| www精品久久| 无码福利日韩神码福利片| 欧美在线视频a| 女人18毛片一级毛片在线| 国产福利微拍精品一区二区| 在线精品自拍| 婷婷开心中文字幕| 国产日韩精品欧美一区灰| 日韩在线2020专区| 丁香婷婷激情网| 福利国产在线| 国产综合无码一区二区色蜜蜜| 国产成人91精品免费网址在线| 欧美亚洲一二三区| 国产午夜精品一区二区三区软件| 欧美在线天堂| 中国美女**毛片录像在线| 婷婷亚洲视频| 精品久久人人爽人人玩人人妻| 9久久伊人精品综合| 97久久人人超碰国产精品| 国产微拍一区| 欧美日韩亚洲综合在线观看| 国产免费黄| 91青青视频| 日韩欧美在线观看| 欧美三級片黃色三級片黃色1| 中文无码日韩精品| 岛国精品一区免费视频在线观看| 国产精品自拍合集| 亚洲中文精品人人永久免费| 暴力调教一区二区三区| 毛片在线播放网址| 欧美福利在线观看| 另类综合视频| AV不卡国产在线观看| 91原创视频在线| 日本午夜在线视频| 精品久久久久久久久久久| 欧美午夜视频在线| 国产91九色在线播放| 日韩av电影一区二区三区四区| 最新国产网站| 国产精品不卡永久免费|