发明内容
本发明的目的在于,提供一种基于Wi-Fi位置指纹的室内停车系统。本发明可以使用户享有便捷的停车、定位服务以及方便管理人员对停车管进行管理,具有使用方便、定位准确和管理效率高的特点。
本发明的技术方案:基于Wi-Fi位置指纹的室内停车系统,所述系统包括用户服务模块和系统管理模块;
所述用户服务模块中设有停车服务模块和位置估计模块,所述停车服务模块用于用户的停车服务,包括停车场查询服务、停车场预约服务、历史预约查询服务以及自动结账服务;所述位置估计模块基于WIFI位置指纹的室内定位用于帮助用户在停车场中快速寻找到自己车辆的所在位置以及自己的所在位置;
所述基于WIFI位置指纹的室内定位是通过用多个无线接入点对室内进行无线信号覆盖,并收集室内不同位置处的信号强度,每个位置处的信号强度与该位置的实际物理坐标一一对应形成位置指纹,由此构建得到位置指纹数据库;使用分层聚类策略对位置指纹数据库中的位置指纹进行划分;将来自不同无线接入点的信号强度按照值的大小进行排序,并按照排序后的顺序划分出不同的群集,若经过一次划分后的群集的范围依旧很大,则根据群集的范围内的信号强度大小再次进行排序,并对群集再次进行划分,最终将整个定位区域划分为多个范围较小的集群,针对每一个集群,对其中的位置指纹进行小波散射变换,得到小波散射系数模量,再将系数模量与该位置指纹对应的物理坐标共同作为DNN模型的输入,完成DNN模型的训练;
在线定位阶段,用户在待定位目标点由终端设备采集来自室内各个无线接入点的接收信号强度,组成信号强度序列;将信号强度序列根据分层聚类策略与预先设置的位置指纹数据库进行匹配,找到位置指纹数据库中对应的集群后,将待定位目标点的接收信号强度进行小波散射变换,得到系数模量;将系数模量作为该集群对应的DNN模型的输入,对待定位目标点进行位置定位;
所述系统管理模块中设有用户管理模块和停车场管理模块;所述用户管理模块中用于管理用户的信息,包括用于个人基本信息管理、用户停车记录管理以及用户反馈信息管理;所述停车场管理模块用于管理停车场,包括停车场基本信息管理、设备管理以及停车记录管理。
上述的基于Wi-Fi位置指纹的室内停车系统,所述系统内设置有依次连接的前端页面、控制器、业务逻辑层、数据持久层以及数据层;所述控制器、业务逻辑层、数据持久层以及数据层分别与DNN模型连接;
所述用户服务模块或系统管理模块通过前端页面发送数据请求至对应的控制器,然后由控制器将数据请求转发至对应的业务逻辑层并加载DNN模型,业务逻辑层收到DNN模型的实体类后,根据实体类对其进行分析,将需要对数据进行的操作发往数据持久层,数据持久层与数据库进行数据交互,得到的数据将被封装在实体类中,返回至业务逻辑层,并由业务逻辑层返回至控制器,最终数据来到前端页面,由前端页面渲染显示。
前述的基于Wi-Fi位置指纹的室内停车系统,所述的数据层内设有多个数据库以及位置指纹数据库,用于保存用户在使用系统的过程中所产生的各类实体,所述实体包括用户、位置信息、预约信息、停车场、反馈信息和设备;
所述用户实体内设有用户id、账号、密码、邮箱、身份证和手机号码;
所述预约信息实体内设有停车场id、用户id、预约时间、开始时间、结束时间和消费金额;
所述反馈信息实体内设有停车场id、用户id、反馈时间和反馈内容;
所述位置信息实体内设有用户id、位置指纹、定位时间、停车场id、停车场位置;
所述停车场实体内设有停车场id、所属省份、所属市、所属区、经度、纬度、邮箱、座机号码、手机号码、地址、车位总数、空余车位、收费标准和所属机构;
所述设备实体内设有停车场id、设备名和设备数量;
前述的基于Wi-Fi位置指纹的室内停车系统,所述位置估计模块将待定位目标点的接收信号强度组成的信号强度序列传输至控制器,控制器对其进行小波散射变换,得到系数模量,然后将系数模量作为DNN模型的输入具体步骤包括:设位置指纹数据库中第i个位置指纹的信号强度序列为RSSIi={rssi1,rssi2,rssi3,......rssin},其中n为室内中的无线接入点的数量,则小波散射变换公式如下所示:
其中|RSSI
i*ψ|表示取模运算,ψ表示小波函数,
表示低通滤波器;
上述公式中使用的小波函数ψ为母小波,其在不同尺度下的表示形式存在很大差异,生成的小波基函数也不相同,小波基函数由母小波和尺度函数共同构成,而不同尺度下的小波基函数对原始信号进行不同尺度的分解,从而得到原始信号在不同尺度下的特征;
在尺度为a,时间位移为τ时的小波基函数为:
在得到不同尺度的小波基函数后,假设接收信号强度为f(t),则对应的小波散射变换公式为:
将Morlet小波函数作为母小波,Morlet小波函数为:
其中,A和B为常量,ω表示频率,i表示复数;
在进行不同尺度下的小波散射变换时,需要对母小波进行尺度上的扩展,以形成小波基函数:
ψj(t)=2-j*ψ(2-j*t);
其中,j表示尺度因子,其值为正整数,并且不能超过小波散射变换的最大散射量级;
在得到了扩展Morlet小波函数后,对尺度函数
同样进行扩展,其扩展形式为:
最后,根据扩展小波函数和扩展尺度函数,可以得到信号强度序列RSSIi的小波散射变换的一般表达式:
选取零阶小波散射变换所得到的系数模量作为DNN模型的输入,零阶小波散射系数模量的计算为:
在得到零阶小波散射系数模量后,其余高阶小波散射系数模量可以通过将接收信号强度与扩展小波函数卷积取模,并与尺度函数相乘获得:
通过前述计算工作,得到了接收信号强度在不同尺度下的小波散射系数模量。
前述的基于Wi-Fi位置指纹的室内停车系统,所述使用分层聚类策略对位置指纹数据库中的位置指纹进行划分的具体步骤包括:
S1:将位置指纹数据库中所有位置指纹的信号强度序列按照来自不同无线接入点的接收信号强度的大小进行排序,得出接收信号强度最大的无线接入点,将其归入此无线接入点的集群中,每个集群可以由无线接入点的唯一ID来标注,第一步中生成的集群数量等于整个定位区域中的无线接入点个数,而属于每个集群的位置指纹都在该无线接入点处接收到最强的接收信号强度,设定位区域中的无线接入点个数为n个,则形成的集群为Ci,i=1,2,3,......,n;
S2:对集群进行进一步划分,经过第一步的初步聚类后,获得了集群Ci,i=1,2,3,......,n,将每个集群中的位置指纹,再次按照接受信号强度的大小进行排序,将每个位置指纹加入接受信号强度排序次强的无线接入点集群中,假设集群Ci中的位置指纹次强接受信号强度来自m个无线接入点,m≤n,则经过第二次聚类后,集群Ci被划分为多个集群{Ci1,Ci2,Ci3,......,Cim}。
前述的基于Wi-Fi位置指纹的室内停车系统,在信号强度收集过程中,每个位置处的信号强度按照设定的时间间隔在一定时间内收集多次,通过取均值和/或剔除离散值方法对信号强度进行处理,以最终确定该位置的信号强度。
前述的基于Wi-Fi位置指纹的室内停车系统,所述停车服务模块依据用户的停车需求查询目标点周围的停车场,并向系统提交停车场预约服务请求后,系统生成一份停车位预约订单,根据预约订单的详情,查询目标停车场的状态信息,包括是否营业、是否存在车位信息;在目标停车场存在空余车位后,系统确认订单,并将订单返回至用于的用户界面,完成车位预约。
前述的基于Wi-Fi位置指纹的室内停车系统,在取车时,用户通过前端页面提出定位请求,控制器在接收到用户请求后,首先会通过用户的位置指纹判断其是否在停车场中,若不存在,则提示用户并停止定位服务,否则进一步判断位置指纹是否符合DNN模型的输入要求,若不满足要求则向前端页面提出位置刷新请求并等待新位置指纹返回,否则对用户进行位置估计,由此获得了用户在停车场中的位置,下一步业务逻辑层会判断用户在该停车场中是否存在停车记录,如果存在停车记录,就向数据库请求其停放车辆位置,并与用户定位位置一同返回至用户界面,否则仅将用户位置返回至用户界面,完成了用户位置请求。
前述的基于Wi-Fi位置指纹的室内停车系统,所述位置定位服务时,每隔1秒动态获取一次用户位置指纹数据,并返回至系统对其进行一次定位服务,最后将数据返回用户,完成用户在停车场内的动态定位。
与现有技术相比,本发明具有以下有益效果:
1、本发明通过在系统内设置用户服务模块和系统管理模块,用户服务模块中设有停车服务模块和位置估计模块,停车服务模块用于用户的停车服务,包括停车场查询服务、停车场预约服务、历史预约查询服务以及自动结账服务;所述位置估计模块基于WIFI位置指纹的室内定位用于帮助用户在停车场中快速寻找到自己车辆的所在位置以及自己的所在位置;其中室内定位是通过在待定位目标点采集来自室内各个无线接入点的接收信号强度,组成信号强度序列;将信号强度序列根据分层聚类策略与预先设置的位置指纹数据库进行匹配,找到位置指纹数据库中对应的簇后,将待定位目标点的接收信号强度进行小波散射变换,得到系数模量;将系数模量作为该簇对应的DNN模型的输入,对待定位目标点进行位置定位,由此,本发明通过分层聚类策略对信号强度序列进行处理,然后通过小波散射变换这种特征提取方法,使其可以快速地与位置指纹数据库中的簇对应,并作为DNN模型的输入,能够及时有效而又准确的进行室内定,定位之后用户在依据之前的停车场预约进而快速有效的在停车场内进行定位停车;系统管理模块使得停车管管理员可以方便便捷的对停车场、停车场设备、用户信息等进行管理,有效的提升停车场的管理效率。
2、本发明通过采用基于聚类策略的区域划分技术将待定位区域按照一定规则进行细分,通过减小定位时的搜索范围来达到缩小系统位置估计开销的目的,解决了现有技术中,在定位时的搜索开销过大,位置估计时间长,系统在定位阶段时效性不好的问题。本发明采用的聚类策略与现有的聚类算法相比,该聚类算法在选择合适的聚类的过程中,不需要计算待定位目标点的信号强度与各个聚类中心的欧氏距离,而仅仅通过对待定位目标点信号强度序列的值大小的排序就可以完成聚类的选择工作,其在减少算法复杂度的同时,大大缩小了系统的搜索开销以及在线定位时长,同时对位置估计精度不会造成影响。本发明还通过在信号强度收集过程中,每个位置处的信号强度按照设定的时间间隔在一定时间内收集多次,通过取均值和/或剔除离散值方法对信号强度进行处理,以最终确定该位置的信号强度,解决了单次信号采集存在偶然性大、可靠性和稳定性差等情况,保证信号强度收集工作的有效性。本发明还基于小波散射变换的特征提取算法对接收信号强度进行处理,有利于提高基于接受信号强度的室内定位算法的位置估计精度,同时在基于移动手机的室内定位应用中也具有很强的优势。
3、本发明设置有依次连接的前端页面、控制器、业务逻辑层、数据持久层以及数据层,将控制器、业务逻辑层、数据持久层以及数据层分别与DNN模型连接;使用时,使用者在用户服务模块或系统管理模块通过前端页面发送数据请求至对应的控制器,然后由控制器将数据请求转发至对应的业务逻辑层并加载DNN模型,业务逻辑层收到DNN模型的实体类后,根据实体类对其进行分析,将需要对数据进行的操作发往数据持久层,数据持久层与数据库进行数据交互,得到的数据将被封装在实体类中,返回至业务逻辑层,并由业务逻辑层返回至控制器,最终数据来到前端页面,由前端页面渲染显示。由此,本发明实现系统整体框架的构建与实施,具有整体系统小型化,运行容易的特点,而且,本发明通过多个数据库以及位置指纹数据库保存用户在使用系统的过程中产生的各类实体,并使得实体之间的关系和属性结构化呈现,方便系统进行运行和管理。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。
实施例:基于Wi-Fi位置指纹的室内停车系统,如图1所示,所述系统包括用户服务模块和系统管理模块;
所述用户服务模块中设有停车服务模块和位置估计模块,所述停车服务模块用于用户的停车服务,包括停车场查询服务、停车场预约服务、历史预约查询服务以及自动结账服务;所述位置估计模块基于WIFI位置指纹的室内定位用于帮助用户在停车场中快速寻找到自己车辆的所在位置以及自己的所在位置;
所述系统管理模块中设有用户管理模块和停车场管理模块;所述用户管理模块中用于管理用户的信息,包括用于个人基本信息管理、用户停车记录管理以及用户反馈信息管理;所述停车场管理模块用于管理停车场,包括停车场基本信息管理、设备管理以及停车记录管理;
如图2所示,基于WIFI位置指纹的室内定位是通过用多个无线接入点(AP,下文中AP代表无线接入点)对室内进行无线信号覆盖,并通过信号采集用具收集室内不同位置处的信号强度(RSSI,下文中RSSI代表信号强度),在信号强度收集过程中,每个位置处的信号强度按照设定的时间间隔在一定时间内收集多次,通过取均值和剔除离散值方法对信号强度进行处理,以最终确定该位置的信号强度,每个位置处的信号强度与该位置的实际物理坐标一一对应形成位置指纹,由此构建得到位置指纹数据库。图3展示了离线阶段位置指纹数据库的构建流程,其中AP个数为n,(xi,yi)表示位置i处的物理坐标,rssii 1,rssii 2,rssii 3,......rssii n表示位置i处的接收信号强度序列。
使用分层聚类策略对位置指纹数据库中的位置指纹进行划分;将来自不同无线接入点的信号强度按照值的大小进行排序,并按照排序后的顺序划分出不同的群集,若经过一次划分后的群集的范围依旧很大,则根据群集的范围内的信号强度大小再次进行排序,并对群集再次进行划分,最终将整个定位区域划分为多个范围较小的群集。
具体步骤包括:
S1:将位置指纹数据库中所有位置指纹的信号强度序列按照来自不同无线接入点的接收信号强度的大小进行排序,得出接收信号强度最大的无线接入点,将其归入此无线接入点的集群中,每个集群可以由无线接入点的唯一ID来标注,第一步中生成的集群数量等于整个定位区域中的无线接入点个数,而属于每个集群的位置指纹都在该无线接入点处接收到最强的接收信号强度,设定位区域中的无线接入点个数为n个,则形成的集群为Ci,i=1,2,3,......,n;经过第一步的划分后,形成的聚类效果如图3所示,这里以AP个数为9时的聚类效果为例,图中黑色实线边框为室内定位区域,蓝色实线为单次聚类后的定位区域划分。
S2:对集群进行进一步划分,经过第一步的初步聚类后,获得了集群Ci,i=1,2,3,......,n,将每个集群中的位置指纹,再次按照接受信号强度的大小进行排序,将每个位置指纹加入接受信号强度排序次强的无线接入点集群中,假设集群Ci中的位置指纹次强接受信号强度来自m个无线接入点,m≤n,则经过第二次聚类后,集群Ci被划分为多个集群{Ci1,Ci2,Ci3,......,Cim}。在一个AP数量为9的室内定位区域中,某个参考点的接收信号强度按从大到小排序为{AP5,AP8,AP8,AP6,AP8,AP4,AP1,AP9,AP3,AP7,AP2},则在二次聚类后,该参考点将被归入C58群集中。这里同样以AP个数为9时的聚类效果为例,图4展示了分层聚类策略二次聚类效果示意图,图中虚线表示第二次聚类后的划分区域。
在实际试验中,本发明选取了一块符合实验要求的室内停车场部分区域,区域面积为145m×135m,将其作为本发明的试验场地,实验场地环境图如图5所示,图中灰色长方体代表停车位,实心圆代表在停车场中布置的AP,它们的分布情况已在图中标明,根据实验场地的大小,本发明将AP数量设置为32个;
在实验场地中,如图6所示,本发明根据区域结构图对整个定位区域进行网格化,并以区域左下角为坐标原点,均匀采集了520个参考点处的接收信号强度,每个参考点处采集50个样本值,时间间隔为20秒,使用的信号采集工具为小米手机,将每个参考点处收集的信号强度样本值中的异常值移除并求均值,以此作为该参考点的信号强度值,信号强度值的单位为d-Bm,其值通常用负数表示,值越大代表信号强度越强,值越小则信号强度越小,若在某一个参考点处采集的信号强度序列中不存在某个AP发出的信号,则在该参考点处的信号强度序列中来自该AP的信号强度值以-100dBm表示,将所有参考点的信号强度值及其对应的相对经纬度坐标共同存入位置指纹数据库中;表1为位置指纹数据库中部分指纹数据:
表1
至此,如位置指纹数据库的构建工作已经基本完成。其中,每个指纹的信号强度序列由从32个AP处采集到的信号强度组成,相对坐标为参考点处与坐标原点的经纬度的差值,其值用正数表示。
将位置指纹数据库中的前450个位置指纹数据作为训练数据,剩下的70个位置指纹数据作为测试数据。在线定位模型中DNN分类器的模型参数如表2所示,初始学习率为0.0001,训练过程中将使用Adam优化算法对学习率进行自适应调节。
表2
其中DNN模型的训练是通过使用分层聚类策略对位置指纹数据库进行二次聚类,聚类后的位置指纹被分为若干簇,针对每一个簇,对其中的位置指纹进行小波散射变换,得到小波散射系数模量,再将系数模量与该位置指纹对应的物理坐标共同作为DNN模型的输入,完成DNN模型的训练。
在完成离线阶段的工作后,在线阶段通过在待定位目标点采集来自室内各个无线接入点的接收信号强度,组成信号强度序列;将信号强度序列根据分层聚类策略与预先设置的位置指纹数据库进行匹配,找到位置指纹数据库中对应的簇后,将待定位目标点的接收信号强度进行小波散射变换,得到系数模量;
其中,将待定位目标点的接收信号强度进行小波散射变换,得到系数模量具体步骤包括:设位置指纹数据库中第i个位置指纹的信号强度序列为RSSIi={rssi1,rssi2,rssi3,......rssin},其中n为室内中的无线接入点的数量,则小波散射变换公式如下所示:
其中|RSSI
i*ψ|表示取模运算,ψ表示小波函数,
表示低通滤波器;
上述公式中使用的小波函数ψ为母小波,其在不同尺度下的表示形式存在很大差异,生成的小波基函数也不相同,小波基函数由母小波和尺度函数共同构成,而不同尺度下的小波基函数对原始信号进行不同尺度的分解,从而得到原始信号在不同尺度下的特征;
在尺度为a,时间位移为τ时的小波基函数为:
在得到不同尺度的小波基函数后,假设接收信号强度为f(t),则对应的小波散射变换公式为:
将Morlet小波函数作为母小波,Morlet小波函数为:
其中,A和B为常量,ω表示频率,i表示复数;
在进行不同尺度下的小波散射变换时,需要对母小波进行尺度上的扩展,以形成小波基函数:
ψj(t)=2-j*ψ(2-j*t);
其中,j表示尺度因子,其值为正整数,并且不能超过小波散射变换的最大散射量级;
在得到了扩展Morlet小波函数后,对尺度函数
同样进行扩展,其扩展形式为:
最后,根据扩展小波函数和扩展尺度函数,可以得到信号强度序列RSSIi的小波散射变换的一般表达式:
选取零阶小波散射变换所得到的系数模量作为DNN模型的输入,零阶小波散射系数模量的计算为:
在得到零阶小波散射系数模量后,其余高阶小波散射系数模量可以通过将接收信号强度与扩展小波函数卷积取模,并与尺度函数相乘获得:
通过前述计算工作,得到了接收信号强度在不同尺度下的小波散射系数模量。最后将系数模量作为该簇对应的DNN模型的输入,对待定位目标点进行位置定位。
如图8所示,所述系统内设置有依次连接的前端页面、控制器、业务逻辑层、数据持久层以及数据层;所述控制器、业务逻辑层、数据持久层以及数据层分别与DNN模型连接;所述的数据持久层使用的框架为MyBatis;
所述用户服务模块或系统管理模块通过前端页面发送数据请求至对应的控制器,然后由控制器将数据请求转发至对应的业务逻辑层并加载DNN模型,业务逻辑层收到DNN模型的实体类后,根据实体类对其进行分析,将需要对数据进行的操作发往数据持久层,数据持久层与数据库进行数据交互,得到的数据将被封装在实体类中,返回至业务逻辑层,并由业务逻辑层返回至控制器,最终数据来到前端页面,由前端页面渲染显示。
所述的数据层内设有多个数据库以及位置指纹数据库,用于保存用户在使用系统的过程中所产生的各类实体,如图9所示,所述实体包括用户、位置信息、预约信息、停车场、反馈信息和设备;用户通过定位得到位置信息,并对停车场进行停车预约构成预约信息或对停车场进行反馈构成反馈信息,停车场接受预约信息或反馈信息后管理停车场内设备;
所述系统的全部实体包括用户、位置信息、预约信息、停车场、反馈信息和设备,用户实体包括用户id、账号、密码、邮箱等属性,每个用户可以发出多条预约信息,这些预约信息可以来自不同的停车场,预约信息实体包含停车场id、用户id、预约时间、开始时间、结束时间和消费金额等属性,此外,用户可以对不同的停车场发出反馈消息,其与反馈信息实体为一对多关系,反馈信息实体包括停车场id、用户id、反馈时间和反馈内容。用户在取车过程中,可以向系统请求定位服务,由于用户在系统中的定位是实时进行的,因此用户实体与位置信息实体为一对多关系,位置信息实体包含用户id、位置指纹、定位时间、停车场id、停车场位置。用户发出的预约信息和反馈信息,会与相应停车场进行关联,它们之间的关系为多对一关系,即每一个停车场会收到来自不同用户的多个预约信息和反馈信息,停车场实体所包含的属性较多,它是整个系统中最为庞大的实体,属性由停车场id、所属省份、所属市、所属区、经度、纬度、邮箱、座机号码、手机号码、地址、车位总数、空余车位、收费标准和所属机构构成。每个停车场需要管理其内部设备,呈一对多关系,设备实体仅有停车场id、设备名和设备数量三种属性。
根据图9中的实体和属性关系,对每个实体进行数据表结构呈现,包括实体中每个属性的数据类型、序号、数据长度等字段,以上述所有实体中几个具有代表性实体的数据表结构为例,进行展示。
停车场数据表如表3所示:
表3
用户数据表如表4所示:
表4
位置信息数据表如表45所示:
表5
预约信息数据表如表6所示:
表6
反馈信息数据表如表7所示:
表7
在完成系统整体的框架搭建后,实际使用中,如图10所示,首先,用户在登录界面中输入用户名及密码,系统会根据用户数据库中的信息判断该用户名是否存在,若该用户名不存在,则自动跳转至用户注册界面引导用户进行注册,注册完成之后跳转回登录界面;若该用户名存在,继续判断用户密码是否正确,若正确,跳转至系统主页,若不正确,提示用户登录密码错误,并返回至流程最开始,进行新一轮判断。本系统用户登录成功后,会处于在线状态中,若超过半个小时用户未做出任何指示,则自动退出登录状态,以保障系统安全,控制并发量。具体地,如图11所示,当新用户需要注册时,在登录界面中点击注册按钮,页面将向左滑动至注册界面,用户注册需要输入姓名、邮箱和密码,点击注册按钮后同样由过滤器监听到并触发login.js脚本,首先会根据脚本中制定的验证规则检验输入数据是否符合规则,包括数据长度、数据类型、数据格式等,若符合规则就将页面返回的表单数据以post方式转发至控制器ParkingLotController.java中@RequestMapping为register.do的方法中,由其判断用户名是否存在,若用户名不存在,则返回“1”,提示用户注册成功并跳转至登录界面,否则提示用户该用户名已注册。系统注册功能仅为驾驶员用户提供服务,系统管理员无需注册,若需要增加子管理员,则由原管理员直接在对应的管理员数据库中添加即可。
如图12所示,用户在进入系统界面后,可以根据自己的需要查询特定的停车场信息,在其输入停车场名称后,系统会在停车场数据库中查找并判断该停车场是否存在,如果停车场不存在,则通知用户输入信息有误并请重新输入,否则进入该停车场详情页,页面展示停车场基本信息,包括停车价格、停车场位置、停车场联系方式等,并为用户提供预约服务,用户预约后系统会继续判断该停车场在预约所选时段是否存在空余停车位,并及时反馈至用户页面。具体地,如图13所示,驾驶员在成功登录本系统后,会进入驾驶员首页,本页面由两部分组成,左侧为导航栏,包含了为驾驶员提供的主要功能导航,分为三部分,分别为首页、我的预约和个人中心,其中我的预约中又包括了进行中和历史预约两部分,点击左侧导航栏后,右侧对应的功能界面将随之发生变化。
首页板块顶部为一条bar,左侧显示用户名,右侧为系统退出功能按钮,中间位置采用了百度地图技术,将根据用户设备的位置在地图上自动定位,并在地图上显示周围两公里内的所有停车场,此处调用了百度地图API中BMap类的Marker函数和Label函数,采用在地图上根据经纬度打标签的方式将停车场显示出来,同时在板块最右侧加入了侧边栏,以列表的形式将地图上的停车场名称以及与用户的距离显示出来,此处根据停车场和用户的经纬度坐标来计算两者之间的距离,方便用户选择合适的停车场。在地图上方,为用户提供了根据关键字搜索地名及停车场的功能,此功能同样调用了百度API的地点搜索类,地图将根据搜索的位置动态更新,并显示周围两公里内停车场,在搜索框的最左侧有一个圆环按钮,此按钮为定位功能键。
用户在点击地图上的停车场名称后,系统将通过BMap.InfoWindow方法在地图上动态创建出一个信息窗口,其中显示了停车场的基本信息,并且包含两个功能按钮,分别为“详情”和“预约”,点击“详情”按钮后,系统将调用Layui的layer.open函数,在页面中显出一个弹窗,里面包含了如图14所示的该停车场的详细信息。
若用户需要预约此停车场,则在界面中点击“预约”按钮,系统将通过layer.open函数在界面中显示一个弹窗,其中包含两个layui-inline类型的时间选择框,可以对预约的开始时间和结束时间进行选择,最后点击预约按钮即可提交申请,系统会根据剩余车位情况和停车场状态对预约申请做出响应。停车场预约界面如图15所示。
用户的预约申请得到系统确认后,预约将进入“进行中”状态,用户可以点击左侧导航栏“我的预约”中的“进行中”查看,在右侧预约列表中选中某个预约订单后,右侧界面将进入如图16所示的预约订单详情页。该界面最右侧为所预定停车场的详细信息,中间部分顶端显示了停车场的空余车位数、收费标准、所属省市区等信息,下方为该停车场的室内地图,主要为用户寻车提供帮助。地图上蓝色圆点表示车辆所在位置,绿色圆点表示用户所在位置。
如图17所示,在取车时,用户通过前端页面提出定位请求,控制器在接收到用户请求后,首先会通过用户的位置指纹判断其是否在停车场中,若不存在,则提示用户并停止定位服务,否则进一步判断位置指纹是否符合DNN模型的输入要求,若不满足要求则向前端页面提出位置刷新请求并等待新位置指纹返回,否则对用户进行位置估计,由此获得了用户在停车场中的位置,下一步业务逻辑层会判断用户在该停车场中是否存在停车记录,如果存在停车记录,就向数据库请求其停放车辆位置,并与用户定位位置一同返回至用户界面,否则仅将用户位置返回至用户界面,完成了用户位置请求。
该界面每隔1秒自动采集周围AP的信号强度和经纬度信息,组成位置指纹并以post方式发送至后台系统,系统调用DNN模型对用户进行定位,将得到的坐标返回至用户界面并在室内地图中加以渲染,其位置为实时动态刷新的,车辆位置为用户在停车后所记录的用户位置,保存在位置信息数据库中,当用户请求位置估计时,从数据库中取出并在地图上渲染。此外,驾驶员界面还为其提供了查询历史预约功能和访问个人中心功能。在历史预约界面中,以列表的形式为用户展示出历史预约订单,包括失效订单和已完成订单,点击进入查看订单详细信息。个人中心为用户提供修改个人信息的功能。
此外,在登录界面中,若判断登录账号为管理员账号,则跳转至管理员首页,如图18所示。管理员首页同样由两部分组成,左侧为功能导航栏,包括首页、停车场管理、客户管理、记录管理和数据分析五大模块,其中停车场管理模块分为基本信息和设备模板,客户管理模块分为信息维护和请求消息,记录管理模块分为停车记录和反馈记录,数据分析包括指标分析。界面最右侧显示了各区域停车场分布数,由两级标签组成,第一级为省份信息,显示了每个省份所包含的停车场数量,第二级为县市信息,为该省中各县市所包含的停车场数量。
基本信息界面为管理员提供了添加停车场和维护停车场信息的功能,其中添加停车场界面如图19所示。该界面由一个form表单构成,包括了添加停车场需要提供的所有基本信息,停车场地址的省、市、区被设计为下拉框形式,在管理员点击提交按钮后,数据将经过parking_manager.js脚本转发至名为ParkingLotController.java的controller中,最终存储至停车场数据库。
管理员停车列表界面如图20所示。该页面将停车场数据库中所有停车场的基本信息以列表的形式展示了出来,管理员可以根据需要在右上角搜索框中查询特定停车场信息,查询规则为将用户输入与数据库中的停车场名称进行不完全匹配,对应自定义方法名为getParkLotListByKeyWord。
停车场列表中每行记录右侧为管理员提供了两个功能按钮,分别为修改停车场信息和删除停车场,分别对应名为ParkingLotController.java的controller中的getParkLot方法和deleteParkingLot方法,再根据相应的xml文件对数据库进行操作。若数据库中停车场数量较多,则在该页中以分页的形式显示,每页包含20条停车场数据,右下角提供分页切换按钮。
管理员点击修改停车场按钮后,页面右侧切换至如图21所示的停车场详情页。页面上方展示了该停车场在地图中的具体位置,下方以表单的形式将数据库中该停车场信息展示出来,管理员可以直接对各个输入框中的数据做出修改,修改完毕后点击确认修改按钮即可,表单提交的数据将经过数据持久层更新数据库中的数据。若该停车场数据存在大量更改需求,管理员也可点击重置按钮对表单数据进行清空。
为了验证本发明的各模块和功能的有效运行,本发明对室内定位系统的测试主要集中在笔记本电脑和移动手机上进行,总共选取了5台笔记本电脑和8部智能手机,其中笔记本电脑的操作系统、屏幕尺寸、网卡型号等硬件配置各不相同,智能手机包含不同版本的安卓手机和苹果手机,拟通过在这些设备上的系统测试,对系统的兼容性、扩展性、流畅性等性能进行测试,检查系统在多种设备上的页面显示是否正常,各功能点的设计和实现情况是否存在问题,所设计的业务是否完备等。
本发明利用各类移动设备上对系统用户模块和管理员模块分别进行功能测试,通过设计功能测试用例,来检验两个模块的各个功能点是否正常,并以符合预期率作为指标对测试结果进行评价,符合预期率的计算方法为测试结果正常的设备数量除以总测试设备数。
用户功能测试用例表如表8所示。
表8
从表8中可以看出,本发明的用户功能测试用例表中的功能测试点基本都符合预期。
管理员功能测试用例表如表9所示。
表9
从表9中可以看出,本发明的管理员功能测试用例表中的功能测试点基本都符合预期。
综上所述,本发明可以使用户享有便捷的停车、定位服务以及方便管理人员对停车管进行管理,具有使用方便、定位准确和管理效率高的特点。