IndoorPos
这是一个采用iBeacon技术的室内定位服务端程序,里面包含了三种定位算法,三边定位算法、加权三边定位算法和三角形加权质心定位算法。程序采用Spring框架,简化了JDBC和RMI的样板式代码,并配置了Druid数据库连接池,同时,为了满足高并发的需求,采用了NIO框架Netty,更好地支持大量终端同时定位。程序已经Maven化。
一、室内定位系统简介
由于卫星信号到达地面时较弱、不能穿透建筑物等问题,在室内环境中无法使用卫星定位。本室内定位系统是一种采用蓝牙4.0 iBeacon基站定位技术,结合高容错定位算法进行室内定位的系统,定位基站廉价、易安置,定位终端可直接采用支持蓝牙4.0的移动终端,由于目前绝大多数移动终端都已支持蓝牙4.0,因此本系统不需要使用额外的定位标签、设备,直接可以通过移动电子设备进行定位。从业务应用的角度来看,本系统可实现对人员的实时定位、导航指路等功能以及贵重物品、车辆的定位;同时还可进行区域人流分析,人员密度分析,停留时间、人员流量统计,特定人员监控,区域报警和人员轨迹查看等多种应用的二次开发。
室内定位系统可分为基站、被定位终端、服务器、数据库、客户端等五个部分,分别详述如下:
基站:布置于需要定位的环境,向外发射蓝牙信号,各基站发射频率与发射强度保持一致,每一均有独立ID及相对于定位环境坐标原点的坐标,基站向外发射包括自己ID的信号,基站坐标保存在数据库中。
被定位终端:所有具备蓝牙4.0功能的设备均可作为被定位终端,其接收基站发来的信号强度值与基站的ID信息,并连同该被定位终端的ID信息,一同发送到服务器中。
服务器:服务器接收从被定位终端发来的该定位终端ID信息、接收到信号的基站ID信息及对应的信号强度值,并从数据库中取得基站坐标信息,利用定位算法进行定位,得到被定位终端的坐标信息,先发送给客户端,然后写入到数据库。
数据库:存储定位的相关数据 ,包括高度补偿值、基站坐标、衰减因子值、员工信息,并保存服务器发来的被定位终端的坐标信息。
客户端:客户端分为PC端、IOS端、Android端,负责接收服务器发来的坐标信息,然后进行前端展示。
系统的架构图如下:
图中各流程注解如下:
①:基站向需要定位的环境发送包括自身ID、强度值的信号。
②:被定位终端向服务器发送自身ID、接收到信号的基站ID组及其对应的信号强度值
③:服务器从数据库中拿到高度补偿值、基站坐标、衰减因子值用以定位。
④:服务器向客户端发