基于基站定位的景区自动导览软件系统研究与设计
随着旅游业的蓬勃发展,国内旅游人数屡创新高,不难发现,目前国内的大多数景点的导览方式并没有因为互联网的浪潮而改变。首先,导览牌和导游解说的方式,让旅游变成了拍照留念,游客印象不深,导览体验不佳。其次,在室内景点等GPS 信号较弱的场景中,游客无法通过手机中的地图APP 进行定位,浪费大量时间寻找想去的景点,降低了旅游体验。另外,景区的工作人员也缺乏获取游客求助信息、景区客流量、游客实时分布等信息的渠道。因此,本文通过问卷调查和走访的方式,了解和掌握了游客和景区工作人员的需求,并据此设计、开发了具有基站定位、语音导览、图文导览、紧急求助、 景区评价、导航等功能的游客系统,和具有POI(Point of Information, 信息点)点管理、景区管理员管理、求助查看、客流量统计、游客分布实时显示等功能的景区管理员系统,二者组成了景区自动导览软件系统。
一、绪论
1.1 研究背景与意义
随着中国经济的腾飞,对外开放的程度越来越高,国内旅游业日渐繁荣。国内旅游收入在1993年到 2010年之间增长了14.6 倍,在可见的未来,国内旅游业仍将继续保持高速增长。国内旅游业的繁荣也吸引了一大批外国游客和港澳台同胞来到中国大陆地区旅游,港澳台赴中国大陆地区旅游人次增长明显。而外国入境旅游人数从2001年的1122.6万人次增加到 2017 年的2916.5万次。出入境旅游逐渐改变外国友人对中国的刻板印象,增进了中国人民和世界人民的感情,发挥着重要的民间外交作用。
1.2 景区自动导览软件系统国内外研究现状
1.2.1 国内研究现状
近几年,由于携程、飞猪、途牛、美团等互联网公司的高速扩张,游客已经可以通过互联网自主预定门票、酒店、车票等,互联网目前解决了将游客带到景区的任务,让用户不用为门票排队而浪费宝贵的出游时间。但是国内互联网企业目前并没有推出在景区内部指导用户进行游览的成熟产品,在景区内游客的服务问题仍然有待互联网公司解决。全景摄影技术的发展与成熟,让很多景点推出了自己的全景旅游方案,如故宫博物院的全景故宫、百度地图的附带功能百度街景等。通过全景摄影展示的方式,博物馆一类的景点能够更好的控制支出、提高展品展出率,但是由于用户只能在有限的屏幕上进行观看,很难有身临其境的的沉浸感,不能带来良好的游览体验,若将其用作景区导览很难带来良好的用户体验。
1.2.2 国外研究现状
国外对于景区自动导览系统的研究起步较早,应用更为广泛,各种创新和科研成果使得景区自动导览软件系统更加成熟。2008年IBM公司就已经提出了“智慧地球”的概念,利用不断创新的物联网、互联网、云计算等前沿技术更加科学地使用资源,将地球上的资源通过新技术进行管理,将有限的资源的利用率提高,促进生产力水平和社会的发展。“智慧地球”衍生出了更多的概念,智慧旅游便是其中之一。智慧旅游给游客提供旅游信息和服务,诸如酒店、交通、 购物等信息的查询、景区的导览。
二、开发语言、平台及技术介绍
2.1 开发语言
2.1.1 Java 语言
Java语言长期占据着市场份额第一的宝座,有着广泛的应用。Java 语言在 C++语言的基础之上发展而来,在 C++语言的基础上进行了一些“扬弃”,继承了C++语言面向对象的特性[27],同时去除了指针、多继承等难理解的概念,并由 Java 虚拟机进行内存管理,让程序员不再需要进行繁重的内存管理,提高了 Java 语言的简单性、易学性。Java 语言的面向对象、健壮性、安全性、跨平台和多线 程等特性让其在世界范围内被广泛学习和使用。前几年由于互联网的兴起,让 Java 语言大大流行,在随后的移动互联网浪潮中,由于 Java 开源、开发者多、 面向对象和效率高等优势,Java被Google 选为 Android APP 的开发语言。由 于本系统的开发过程中不仅需要 Java 作为后端开发,同时也需要 Java 开发出辅助的 Android APP,所以选取 Java 作为本系统的主要开发语言。
2.1.2 JavaScript语言
JavaScript是一种解释性脚本语言,如今已广泛应用于Web应用开发。JavaScript和Java名字上相似,是因为 Netscape 想借助当时红火的 Java 的名气 进行推广,但它仅仅借鉴了 Java 语言的数据类型和内存管理。JavaScript 语言是为了 Web 浏览器而生的,设计 JavaScript 的初衷,是想让静态的 HTML 页面增加一些动态效果,提高用户的浏览体验,但它也被用在很多非浏览器环境。 JavaScript 是一门面向对象的语言,它提供了文档对象模型(DOM),通过 DOM 获取网页的内容,并通过提供的方法和接口对网页内容进行修改,从而使网页可以动起来。通过浏览器对象模型(BOM)与浏览器进行交互。 JavaScript 语言是基于浏览器的,它需要浏览器提供相应的支持,它可以在 多个平台运行,如 Windows、Linux、Mac、Android、iOS 上运行,因此 JavaScript 具有跨平台的特性。 JavaScript 语言可以直接嵌入 HTML 页面,但大多数时候都会让 JavaScript 代码写成单独的 JS 文件,再通过 HTML 页面引入,做到行为与控制相分离。 2.1.3 HTML5 HTML(HyperText Markup Language,超文本标记语言)是一种标识语言(也称标记语言),它通过一系列的标签将网络上分散的的资源,如图片、链接、音 频、视频等,连接为一个逻辑整体。HTML 语言本质上是文本,通过浏览器解 析,将用不同标记的内容解析为不同的形式显示出来。
HTML语言自从 1990 年诞生以来,经过 6 个版本的迭代,目前已经发展到了 HTML5,HTML5于 2008 年诞生,基于 HTML4.01 的基础上改进,适应了现 代网络的发展需求,将Web带入了更加成熟的平台。
HTML5 有着如下特点:
(1)跨平台性。HTML是基于浏览器的,HTML5 同样可以通过浏览器实现跨平台。HTML5 还可以将 HTML5 开发的应用封装成 App,实现跨平台。
(2)更加标准化。HTML5 是一个规范和标准,在 HTML5 之前,各个浏览器不统一,处理 HTML 的兼容性问题引起的BUG需要耗费大量时间。HTML5 将音频、视频、图片、动画等与计算机交互标准化,有了统一标准的互联网,沟通更为高效。
(3)设备访问特性。HTML5 利用浏览器作为中介访问 Native,可以调用 GPS(Global Positioning System,全球定位系统)、麦克风、摄像头。更好地适应 移动开发。
(4)更好的视觉体验。HTML5有着良好的网页多媒体特性,支持网页端的Audio和Video等功能,HTML5解决了 iOS 和 Android 对 Flash 不支持的问题,同时HTML5播放器有着更好的性能。另外,在三维图形显示方面 HTML5 提升明显,对 SVG、CSS3、WebGL 及 Canvas 等有了更好的支持,带给用户更好的显示效果。
(5)安全性。HTML5将代码加密,本地解密了再运行,提高了代码的安全性。
(6)更好的性能。HTML5 增加了 WebWorker、XMLHttpRequest2,提高了运行效率。
2.2 开发平台
2.2.1 IntelliJ IDEA
开发平台选用捷克的JetBrains 公司的IntelliJ IDEA, IntelliJ IDEA 是 Java 语言的集成开发环境。IntelliJ IDEA在其前辈 eclipse 的基础上,还集成了Spring、Springboot 等 Java 流行框架的开发插件,同时也集成了如 Maven、Gradle、Junit 和 Git 等企业开发测试工具,在智能代码助手、代码自动提示、重构、CVS 整合、代码分析、GUI 设计等方面功能强大,是目前业界被公认的最好的开发环境之一。作为 Java开发平台,IntelliJ IDEA 还支持HTML5、CSS3、JavaScript、SASS、Node.js 等前端语言的提示,在安装插件后还支持PHP、Python、Ruby、Scala等语言,兼容性非常出色,让多语言、前后端协同开发变得简便。简化了开发流程,使得其在 Java开发圈广受欢迎。
2.2.2 Android Studio
在 Android 开发方面开发平台选用 Android Studio作为开发平台,Android Studio 是 Google 以 IntelliJ IDEA 作为基础开发出的集成开发环境,对于习惯 于使用 IntelliJ IDEA 进行 Java 开发的人来说,降低了学习成本。Android Studio 使用 Gradle 构建项目,使得项目管理变得更为轻松。由于 Java 被 Oracle 收购,Java 闭源的可能性在逐步上升,Google将 Kotlin 语言引入Android 开发中,并在 Android Studio 中增加了对 Kotlin 的支持。
2.3 开发技术
本系统采用 SSM 框架(Spring 框架、Spring MVC 框架和 Mybatis 框架简称 SSM 框架)和 Spring boot 进行后端开发。Spring、Spring MVC 和 Mybatis 是目 前比较流行的 Java 后端框架体系之一。Spring 主要负责 bean 管理,Spring MVC 是开发 Java Web 的框架,而 Mybatis 是解决持久层的问题,负责和数据库打交 道。 Spring Boot 的出现是为了简化 Spring 的复杂、繁琐的配置,Spring Boot 会 在没有配置的时候采用默认配置达到简化开发过程的目的。同时,Spring Boot 采 用 Maven 或 Gradle 来进行包管理,方便了项目的管理。 在前端方面选用 JQuery 作为开发框架,JQuery 是用来简化 JavaScript 的编 程的前端框架。本系统在开发过程中使用了大量的 Ajax 技术,JQuery 对 Ajax 的 良好封装,降低了 Ajax 编程的难度。
2.3.1 SSM 框架
SSM 框架沟通了 Java 后端开发的各个环节,从持久层到服务层到表现层全 部囊括。且由于 Spring、Spring MVC 和 Mybatis 都是开源的,有利于企业降低成 本,所以 SSM 框架得到了广泛的应用[37]。 Spring 是为了改变 EJB(企业级 JavaBean,Enterprise JavaBean)的诸多缺点 而出现的 Java EE框架。