虽然GPS卫星定位和北斗导航在智能手机上已经成为了标配。但不管是GPS还是北斗导航都无法穿透太厚的墙壁,导致在大型建筑或高层建筑的地下停车场中会因找不到卫星信号而无法定位,出现用户进入停车场后找车位难,找车难,找出口难的问题。为了解决这一难题,室内导航应运而生。
1.2项目目标充分利用移动设备的优势,填补GPS定位和北斗导航的不足,利用IBeacon技术实现室内定位,利用车牌识别技术确定车辆位置,实时规划路径进行室内导航。
2. 总体设计2.1 服务数据简易架构A. 每个停车场会根据其停车场编号命名文件夹,文件夹内存放其地图数据文件。
B. 若想访问该停车场的室内地图,只需根据该停车场的编号就可以获取到对应的地图文件。
2.2 场景设计A. 用户在室外使用导航至停车场。
B. 进入停车场后闸机扫码后抬杆放行,系统自动切换该停车场的室内导航并规划出最近的线路,导航至最近的停车位。
2.3车位状态上报A.当有车辆进入或离开车位时,摄像机或者地磁会主动上报车位状态。
B. 系统记录车位状态,并实时更新室内地图的车位状态,重新规划空闲车位
2.4室内地图绘制A. 通过CAD修改停车场地图,将多余线条去除
B.通过arcgis将停车场CAD图纸转换成shp文件,获得最基础墙体结构底图
C. 通过arcgis绘制停车位层、道路层、信标层、电梯层导出为shp文件
D.根据shp文件转换成geojson数据化文件
E.通过MATLAB 信标点 绘制地图路径矩阵
F. 前端通过openlayers绘制出可视地图
3. 算法A. 采用蓝牙就近定位。
B. 最短路径算法
系统采用dijkstra算法,首先把起点到所有点的距离存下来找个最短的,然后松弛一次再找出最短的。所谓的松弛操作就是,遍历一遍,看通过刚刚找到的距离最短的点作为中转站会不会更近,如果更近了就更新距离,这样把所有的点找遍之后就存下了起点到其他所有点的最短距离
它的邻接矩阵如下:
第一步:假设源点为V0,那么目前最短路径的顶点集合Q中就只有{V0}和无法到达顶点集合R中有{V1, V2, V3, V4}
第二步:初始化distance数组,就是下面这样
第三步:以distance数组中值为非Infinity的顶点为中转跳点,这一步就是V0,依照如果distance[V] matrix[V][W]
第四步:因为集合R中还有1个顶点,所以重复第三步的方法,然后变成以V1为中转跳点,但是以V1为中转顶点都不满足distance[V] matrix[V][W]
第五步:因为集合R中还有1个顶点,所以重复第三步的方法,此时变成以V2为中转跳点,然后发现V0到达V3的距离可以更新,因为2 3
之后同理,遍历完distance之后,输出