在此背景下,西安交通大学积极响应国家创新驱动的号召,建设了中国西部科技创新港——智慧学镇(简称“创新港”)。
西安交通大学图源官博
随着创新港的投入使用,如何更好地提升校园服务水平也成了学校越来越关心的问题。现有的虚拟校园应用主要针对兴庆校区、曲江校区和雁塔校区,有2.5维和3维场景,对各个校区的主要建筑和景观进行了全局性的展示。
该虚拟校园应用存在以下不足:
第一,三维场景存在浏览器壁垒,部分浏览器不支持此项业务,增加了广大师生的使用困难;
第二,功能较为单一,缺少校园导航功能和VR全景功能,缺乏浸入式体验感;
第四,目前没有对创新港进行全覆盖,无法满足师生对创新港所有建筑和景观了解的需求。
该系统实现了创新港校区全方位导航、室内室外无感切换、提供VR全景校园体验、提升了浸入式体验感,满足了在校师生对创新港的了解,更方便地为全校师生提供了路线规划及路线导航服务。
尤其是在抗击新冠肺炎疫情期间,针对广大师生出行不便的问题,利用小程序承载信息应用服务是高校信息部门的主要方法,同时也是广大师生乐于接受的应用服务途径。
系统设计
1.校园导航系统功能设计
校园导航系统由“创新港导览”小程序和后台管理系统两部分组成。
因此,我们选用小程序作为用户服务端,后台管理系统则采用常用的B/S架构,进行数据分析管理。
用户服务端包括创新港校区建筑道路地图展示、创新港校区室外地图导航服务、创新港校区室内建筑各个楼层平面图展示、创新港校区室内地图导航服务、创新港校区VR全景导览。
后台管理端包括室外楼宇命名、室外停车场管理、室内房间分类命名、室内学院命名等功能。具体描述见表1。
表1校园导航系统主要功能及其描述
2.校园导航系统总体架构设计
“创新港导览”小程序和后台管理系统选择采用基于MVC三层架构的微服务形式进行开发(图1)。
图1校园导航系统体系结构
MVC三层架构分离模式实现展示层、服务层、数据层三层分离,前后端分离、数据层和逻辑层进行分离,采用微服务形式进行业务开发实现各个服务相互解耦、各自独立,方便维护升级,也方便后续的系统扩展。
“创新港导览”小程序系统各层之间通过接口形式传递数据。
服务层主要是对外提供基础功能服务,包含小程序业务子系统、室外地图子系统、室内地图子系统、VR全景子系统、后台管理子系统五个子系统模块。
3.校园导航系统总体功能流程设计
校园导航系统总体功能流程主要分为以下五种:室外导航流程、室内导航流程、室外室内混合导航流程、扫码定位流程、VR导览流程。具体功能描述见表2。
表2校园导航系统总体功能流程及其描述
4.校园导航系统数据库设计
校园导航系统的数据采用双层数据库设计的方法(图2)。
图2校园导航系统数据库设计
底层采用MySQL关系型数据库和MongoDB非关系型数据库合作构建永久存储层,MySQL存储楼宇、道路、楼层、标记物等地图元素主体,以及他们之间的拓扑标注,MongoDB存储各种图层的矢量图片。
上层在内存中构建内存临时数据库,实现持久层数据在内存中的缓存映射,同时在内存数据库中结合不同的元素主题和拓扑关系生成所有的路线路网,数据请求时会在内存中进行节点映射,找到对应线路,然后进行渲染输出。
系统实现
校园导航系统采用C++语言和MySQL数据库、MongoDB数据库,结合MVVM模式,采用了独特的四层架构设计,将前端界面、业务逻辑、内存数据库、永久存储数据库进行分离。
1.前端界面
前端界面采用了MVVM框架进行开发,采用ModelView概念实现了视图和视图数据模型的分离,同时引入观察者模式实现有效的数据监听和数据订阅,开发了基于小程序端和PC的前端界面。
2.业务逻辑层
业务逻辑层处理核心的业务逻辑和数据计算任务,包含路径选择、位置坐标转换等,其封装了对数据库的所有操作。
3.内存数据库缓存层
内存数据库采用具有自定义的内存模型数据库,将地图拓扑数据在内存中进行全量重建,实现对数据库数据的缓存,保证系统的快速响应。
4.用户数据库存储层
采用MySQL和MongoDB结合的方式,存储结构化数据和非结构化数据。
在系统的安全和性能指标上,做了如下处理:
第一,前端服务器对外只开放80端口,并且采用防火墙和反向代理技术,隔离前端请求和业务服务器,同时业务服务器和数据库服务器实现分离,数据库服务器部署在内网,采用master-slave备份机制;
校园导航系统(图3)根据创新港校区的实际环境实现了室内、室外自定义地图展示,对创新港校区所有路网、建筑物室内、外地图的全覆盖,通过系统可以了解创新港校区内所有建筑物以及景观。
图3校园导航系统室内外导航界面
系统还具有室外路径实时导航、室内路径导览、校园VR全景地图(图4)以及会议导航等功能,极大地丰富了校园地图系统功能的多样性,能够满足不同用户的不同需求。
图4VR全景校园界面
通过小程序的承载克服了系统在浏览器上不兼容的问题,用户只需通过小程序端或者“西安交通大学App”就可进入校园导航系统,随时随地使用。