室内停车场车辆定位及导航系统的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
室内停车场车辆定位及导航系统的设计作者:谢宏兰
来源:《电脑知识与技术》2020年第12期
摘要:近年来,各种地图导航应用的出现,大大便利了人们的生活。随着室外定位技术的成熟,人们对室内定位的需求也正在逐渐增加。在室内停车场中,由于车位众多,地形复杂,时常出现车主在寻找车辆时,无法确认位置,从而浪费大量时间的情况。室内停车场车辆定位及导航能为车主提供一个室内导航的帮助,使得车主在该应用的帮助下能快速找到自己的车
辆,节省了车主的时间。本系统的主要应用场景为室内停车场,主要用于在室内对人员和车辆进行定位,方便人们在复杂的室内停车场环境下快速地找到自己的车辆。
关键词:定位;导航;室内停车场
中图分类号:TP3 文献标识码:A
文章编号:1009-3044(2020)12-0219-02
1前言
现如今,越来越多的人拥有了自己的汽车,汽车已经成为人们出行的主要方式之一,使人们的出行生活变得更加方便,快捷。但人们自己开车出行就必须面临停车的问题,车主们时常遇到找不到停车场,车位不足,车位收费价格不合理等众多问题,停车已经成为广大车主的一大難题。车主们不仅在停车时会遇到问题,取车时,车主们也会遇到各种各样的困难。随着停车场的逐渐规范化,越来越多的停车场转移到了室内空间。然而,室内空间环境复杂,为车主找车带来了困难。一方面,各位车主难以准确的记住自己车的位置。另一方面,车主即使能够记住,而在复杂的室内环境下,车主也难以准确判断出自己的当前位置,更无法快速准确地找到自己的车辆。本文旨在建立一个室内停车场车辆定位及导航系统,解决广大车主停车难的问题,为人们的出行生活带来便利。
2系统概述
本文设计的室内停车场车辆定位及导航系统主要完成如下功能:
1)方便车主停车:在停车时,为车主提供附近停车场信息,车位数量,收费标准等,供车主选择,让车主能够找到合适的停车场,停放车辆。
2)方便车主寻找车辆:在车主寻找车辆时,系统提供位置确定和路径导航服务,帮助车主快速找到自己的车辆,节省车主的时间。
3)停车场信息展示:在用户需要停车时,为用户展示停车场的详细信息,包括实时车位数,收费标准,停车场楼层信息,及停车场地图等,供用户选择。
4)停车位记录:当车主停好车后,根据停车场地图选择自己的停车位,并将信息保存在手机中,以便找车时使用。
5)室内定位:找车时,当车主进入停车场后,接收到WiFi信号,根据WiFi的信号强度(WiFi值)计算出距离,实现定位。
6)路径导航:以定位结果为起点,以记录的停车位为终点,运用广度优先遍历算法,计算出最短路径,为车主提供路径导航。
本系统设计中,采用了Client/Server架构,通过合理分配任务到客户端和服务端,降低系统的通讯开销,客户端需要安装相应软件才可进行管理操作,系统架构如图1所示。
在本系统中,使用MySQL数据库存储停车场数据,服务端用Struts2框架搭建,使用JDBC技术连接MySQL数据库,主要实现与客户端进行停车场数据传输的功能。Android客户端通过HttpURLConnection技术实现访问服务端,获取停车场的数据信息,之后根据相应的停车场信息和接收到的WiFi热点信息,进行计算,实现定位功能。系统中的WiFi热点需要设置在停车场的固定位点,并记录在数据库中,在数据传输时,发送至Android客户端,便于进行定位运算。
本系统主要分为两个工作流程,停车操作和找车操作。在停车过程中主要实现停车场信息展示和车位记录的功能,在找车过程中主要实现室内定位和路径导航的功能。在停车过程中,客户端会先展示数据库中的停车场的基本信息,在用户点击选择后,进入查看该停车场的详细信息,并显示该停车场的具体楼层。在用户选择楼层后,即进入相应的停车场地图,地图上会显示车位分布及状态等,在车主停好车后,选择相应车位,经系统验证后,车位信息则被记录在本地,完成停车过程。在找车过程中,系统会先检查是否有停车位记录,当系统有停车位记录时,跳转至找车界面,用户开启定位后,系统根据接收到的WiFi热点信息,计算出当前位置,系统加载相应楼层地图并显示出当前位置,完成定位功能。之后,用户点击路径显示后,系统根据当前位置和车位记录,使用广度优先遍历计算出最短路径,实现路径导航的功能。考虑到系统的实用性,添加了部分实用功能。在停车和找车时,都加入了常用地图应用(高德地图,百度地图)软件的跳转功能,便于车主找到停车场。同时,还加入了实时车位的功能,停车或找车操作完成后,相应车位状态发生改变。在找车过程还加入了路径信息详情的功能,根据路径计算出相应距离及方向,更加方便车主找车。
3地图数据设计及定位导航原理
室内停车场车辆定位及导航系统需要进行定位操作,所以需要绘制地图,设计地图数据结构等相关操作,良好的地图数据结构是完成定位导航功能的基础。在本系统的开发过程中,地图在Eclipse中进行绘制,使用Java语言,运用Bufferedlmage和Graphics相关技术进行地图的绘制,绘制完成后再将内容生成图片,写入文件即可。地图的数据结构设计则相对于较为复杂,需要考虑到定位和导航功能等的实现。地图设计中,需要对地图建立坐标系,即X(横坐标)和Y(纵坐标),同时考虑到减少数据传输,建立Point类,有x,y和id 3个属性,x,y 分别表示横纵坐标,id则为坐标转换后的数据,在数据库和数据传输过程中,只有id属性,具体运算时再还原为相应坐标,减少数据存储和传输。通过Point类的建立,地图中每个点则都有对应的数据表示。之后,即可将具体车位位置,WiFi热点位置,电梯位置等与相应位点进行对应,也可将定位结果显示在地图上。
此时,虽然已经完成定位功能,但路径导航的实现,还需要其他规则。在系统中,定义roadpoint为路径遍历点,endpoint路径遍历端点,在进行路径导航时,先计算出起点和终点对应的最近的路径遍历点,再以这两个遍历点为起点和终点,运用广度优先遍历算法即可找出最短路径,遍历结束后再进行回溯,找出路径的各个关键点(包括起点,起点对应的遍历点,遍历过程中的路径端点,终点对应的遍历点,终点),将各个关键点按顺序连接,即可找出最短路径,显示在地图上,实现路径导航功能。图示如下:
如图2,图中黑色點p1,p2,p3,p4,p5,p6即为endpoint路径遍历端点,蓝色线上的点(包括黑色点)即为roadpoint为路径遍历点。如图3,图中黑色点即为路径关键点,令pl 为起点,p7为终点,则p2为起点对应的路径遍历点,p6为终点对应的路径遍历点,p3,p4,p5即为遍历过程中的路径端点。将路径关键点依次连接,即可得到最短路径(蓝色直线)。
4停车流程设计
本系统的停车流程如图4所示。首先,用户在点击停车后,跳转至停车场选择页面,界面UI主要由一个ListView构成,应用从服务器获得停车场名和实时车位信息,并显示在界面上,供用户选择。待用户点击选择停车场后,进入楼层选择页面,此界面UI由TextView,ImageButton和ListView构成,Text-View用于显示停车场详细信息,ImageButton用于提供按钮跳转第三方地图应用导航至该停车场,ListView则用于显示楼层和各个楼层的车位数量。当用户点击选择楼层后,进入停车位选择页面,此界面UI主要由ImageView,Spinner和Button 构成,ImageView用于显示地图,Spinner列表选择框供用户选择停车位,Button进行停车位确定记录操作,车位记录使用SharedPref-erences完成,同时为便于找车过程,还会将需要的停车场信息也记录。停车流程的每个页面都需要进行网络通信,从服务端获取停车场数据,同时还要完成地图下载的功能。
5找车流程设计
本系统的找车流程如图5所示。在用户点击找车后,系统会根据SharedPreferences中的信息先判断是否有停车位记录,如果没有,则会显示Toast提示信息。如果有车位记录则会弹出一个PopupMenu,提供进入停车场和导航至停车场两个选择。在用户选择点击进入停车场后,正式进入找车流程。在此页面中有查看车位信息,开始定位,显示路径和导航详情四个功能,UI界面中主要使用了Button,ImageView和AlertDialog三个控件。在用户点击查看车位信息后,系统取出找车流程中用SharedPreferences记录的停车位信息,并弹出一个AlertDialog显示给用户。
6小结
本室内停车场车辆定位及导航系统对整个停车过程和找车过程涉及的功能都进行了设计,且对系统的核心功能定位导航,也都较好的设计了。整个应用界面简洁、美观、操作方便、意