论文部分内容阅读
随着Android、iOS等现代移动平台的发展,以及移动端浏览器对HTML5的支持加强,移动端手持设备的用户体验水平有了显著的提高,过去由于技术、性能限制无法实现的功能正大量地被实现。而移动设备带来的新的应用场景催生了新的需求,对软件开发技术带来新的机遇和挑战。城市化进程的推进和人们生活水平的提高,商场、商圈的规模也扩展到前所未有的规模,伴随着传统商家与互联网+线上线下的结合,商家、商品的信息也随之爆炸。传统的导购方式以无法满足需求多样的用户的需求,对更为实时、定制的导购服务的需求也日益强烈。室内地图系统可以为用户提供基于地理信息的服务,并收集用户在商场活动的行为记录。本研究所设计实现了基于Neo4J的室内地图系统,使用Apache Cordova实现Hybrid App客户端,以Nginx作为Web服务器,Tomcat+Spring作为Java应用服务器,Neo4J和MySql组合作为持久化层,实现了地图浏览、商场导航、地图维护等功能,满足了用户对室内地图使用和维护的基本需求。与传统基于关系型数据库实现的地图系统相比,本系统在持久化技术上选择了图数据库。与传统的关系性数据库和其他NOSQL产品不同,图数据库基于图的数据结构,更适合室内地图的应用场景,其对关联操作高效的实现,使其在实现室内地图时在性能和开发效率上有着较大的优势,而Neo4J便是当前图数据库使用人数最多最为成熟的实现之一。本研究主要针对室内地图和图数据库,以下是本研究所做的主要工作及成果:第一,基于图数据库Neo4J和MySql在性能、可用性和数据读写方式上的特点,对于图数据库、关系型数据库和其他NOSQL产品进行了分析,完成了Neo4J和MySql混合使用的高性能高可用的持久化层设计,可用于包括室内地图在内的需要数据多度关联的场景,并通过实际的运行结果论证了在图算法方面Neo4J在性能和开发代价上的优越性。第二,基于Neo4J对多种图算法的支持,分析了多种寻径算法在Neo4J的实现方法,并针对此模块算法的灵活性进行了设计,实现包括最短路径算法、Dijkstra算法和A*算法多种算法的策略,并针对室内地图的应用场景进行了比较,选取了以空间距离为启发函数的A*算法作为本系统的寻径算法。第三,基于Apache Cordova和OpenLayers3,本系统设计与开发了室内地图的地图编辑器,使用了包括Command Pattern、State Pattern在内的多种设计模式,实现了包括绘制路径、绘制区域、上传背景图片等功能。通过地图编辑器的应用,有效地降低了维护代价。本系统已上线,于2017年实施于苏州XX交易商场,为顾客的购物体验带来了提升,让顾客对商场结构有了更好的了解,方便用户找到自己精准需求的店铺,也给商场、商铺带来更高的利润,提高了效率。本系统将根据实际应用中问题和反馈,不断迭代完善功能,优化性能。