室内导航(ble方案)+智能停车位(地磁+nb-iot方案)系统(微信小程序版本)

客套话不多说的了,直接上干货。

分为三块:

(一) 前端平台微信小程序

(二) 后台服务器 springmvc+mybatis+tomcat+mysql。

(三) 硬件设备  ble模块(也可以采用beacon)地磁模块+nb-iot模块。

整体架构:

前端:

本系统采用的是web浏览器的前端,基础库jquery。

前端需求:展示地图,标记位置,导航位置,查看剩余车位。

技术选型

    地图展示:如果使用png,jpg图片或者canvas用户体验会不好,例如,png,jpg放大以后会失真,canvas无法与用户有效交互,因此地图展示采用了svg技术,关于svg的介绍,请各位自行百度,此文只强调用系统用到的特性。

        特点1:可伸缩的矢量图形即放大不失真,xml格式,在大部分浏览器中都可以正常显示,是w3c标准。

        特点2:可交互性,具有dom结构,简单的说svg上的每个元素都可以设定点击和id,并且可用js来设置监听回调。综上,采用svg解决前端显示地图的问题。

  其余需求皆可利用svg的特性来实现。为了更好的操作svg,包括在svg上画图,删除标记等,采用了snap.svg.js这个开源库。

   室内导航时,使用的是ble设备,因此,需要前端运行的平台具有蓝牙操作的功能,本系统中选择了微信小程序。

数据交互:

      前端与后台交互的数据主要分为几块,

       1  用户数据:

            包括,用户的注册信息等。  

      2 设备数据 :  

            包括,定位设备的数据即ble设备的数据以及车位的数据。

      3 导航数据  :

            包括,从服务器获取的路线规划。

重点算法:

定位:

       三边定位算法,具体原理请各位自行查找。很简单的原理,它需要使用rssi来参与运算,但是这样的算法有个缺陷,环境对rssi会有影响,从而计算的位置的结果会有些影响,但是如果环境因子影响不大的情况,精度很高,适合衰减因子少,并且高精度导航数据的场景,例如仓库。这种算法对设备要求较高,国内很多提供室内定位服务的公司,都使用这种算法。

         设备标记,这个原理就很简单,每个设备相当于一个标记,当前端终端扫描指定名称设备的时候,计算出rssi最强的设备,获取这个设备的特征。这种算法对环境要求不高,部署设备时,按照设备的信号强度距离来部署即可。适合商场内部,对精度要求不高(店铺为单位),并且人流较大,衰减因子较多的地方,这种方式,可以使用比较便宜ble设备,本系统开发时,使用的是某宝买的1元一个ble设备。

 

         重点:展示前端使用的是微信小程序,定位算法需要使用ble的功能,微信小程序在操作ble时,是在app的环境下。,最新(2018年3月17日)的微信小程序版本是可以使用webview的,也就是说,我们网页程序可以运行在微信小程序中,但是,但是,但是(重要的事情说三遍),小程序的app环境看着是用js写的,但是他没有dom,具体的原因各位自行查,因此,如果需要小程序和webview的js通信,除了一个跳转地址,那基本就没啥手段,就没啥手段,没啥手段,啥手段,手段,段.....也就是说,在小程序中通过算法取到的设备或者位置,是没有办法直接和webview中的网页交互,查了很多资料,明明近在咫尺的数据,webview就是拿不到。最后只能绕弯路了,让小程序把定位到的设备信息用request发送到服务器,然后webview中通过ajax来动态获取。

                                           2018年3月17日前端大概介绍完成,有空再写具体的技术问题。

本文系原创,如需转载请附上博客地址。

 

       

       

 

 

  •  
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值