如果你的智能手机连接上了某个wi-fi热点,那么就可以调用数据库中附近所有热点的地理位置信息,而服务器会参考每个热点的信号强弱计算出设备的大致地理位置。
一、wifi定位的原理
1.每一个无线ap都有一个全球唯一的mac地址,并且一般来说无线ap在一段时间内是不会移动的。
2.设备在开启wi-fi的情况下,即可扫描并收集周围的ap信号,无论是否加密,是否已连接,甚至信号强度不足以显示在无线信号列表中,都可以获取到ap广播出来的mac地址。
3.设备将这些能够标示ap的数据发送到位置服务器,服务器检索出每一个ap的地理位置,并结合每个信号的强弱程度,计算出设备的地理位置并返回到用户设备。
4.位置服务商要不断更新、补充自己的数据库,以保证数据的准确性,毕竟无线ap不像基站塔那样基本100%不会移动。
现在的wifi定位方法基本上可以分为两大类
1.基于rssi
在智能手机上,可以通过系统sdk获取到周围各个ap(access point)发送的信号强度rssi及ap地址,利用rssi来定位目前看来是最可行的方法,因此下面着重介绍,基于rssi定位主要有两个算法:三角定位算法,指纹算法。
三角定位:
如果我们已经知道了这些ap的位置,我们可以利用信号衰减模型估算出移动设备距离各个ap的距离,然后根据智能机到周围ap距离画圆,其交点就是该设备的位置。很容易发现,三角定位算法需要我们提前知道ap的位置,因此对于环境变化较快的场合不适合使用。
指纹算法
指纹算法类似于机器学习算法,分为两个阶段:
离线训练阶段
将需要室内定位区域划分网格,建立采样点(间距1~2m)
使用wifi接受设备逐个采样点采样,记录该点位置、所获取的rssi及ap地址。
对采样数据进行处理(滤波、均值等)
在线定位阶段
用户持移动设备在定位区域移动,实时获取当前rssi及ap地址,将该信息上传到服务器进行匹配(匹配算法有nn、knn、神经网络等) 得到估算位置。
匹配算法有nn、knn、神经网络等。
比较:
指纹算法相比较三角定位算法精度更高。
三角定位算法需要提前知道所有ap的位置
指纹算法需要提前绘制一幅信号map。
2. 不基于rssi
toa(time ofarrival)
tdoa(time difference of arrival)
aoa(angle of arrival)
但是这些值的获取需要特殊的wifi模块,在智能机上无法获取,因此这类方法无法使用。
wifi定位的优缺点
优点:①定位精度较高,wifi密集人流多的地方相当精确;②速度快;③周围的wifi即使连接不上也能定位。
缺点:①wifi依赖!没有打开wifi就不能定位;②必须处于联网状态;③密集部署;④需要打眼走线,部分环境施工较为困难。