随着无线网络、移动通信、终端数据处理等技术的发展及其应用领域的扩大,LBS(LocationBasedServices,基于位置的服务)成为最具市场前景和发展潜力的移动互联网增值业务之一。不仅仅导航APP、其它订餐、购物、社交等APP也都需要使用到智能手机的位置服务。那么智能手机到底是怎么定位的呢?
根据定位信号的不同,一般分如下几种。
基站信号定位:一部手机能接电话或是打电话,收发短信,就说明这部手机能和附近的手机基站发起交互信号,通过这个基站的位置和手机的交互信号来确定手机在什么位置。
Wi-Fi信号定位:现在的智能手机都可以通过Wi-Fi上网,而每个Wi-Fi对应的路由器,或是移动热点,都有一个唯一的mac地址,我们在扫描热点和Wi-Fi的时候,mac地址就可以反过来定位我们的位置。
GPS定位:GPS定位是手机通过和卫星接收信号,推算出手机和卫星的距离,进而推算出手机所在的位置。
Wi-Fi的扫描模式
手机有两种方式可以获取到周围的无线网络信息:一种是被动扫描(省电模式),手机只是通过监听周围AP发送的Beacon帧获取无线网络信息;另外一种为主动扫描,手机在扫描的时候,主动发送probe帧,通过收到探查响应帧(ProbeResponse)获取网络信号。
被动模式下,就算Wi-Fi打开,也什么都收集不到。不过,手机在实际工作过程中,通常同时使用被动扫描和主动扫描两种方式来获取周围的无线网络信息。
Wi-Fi定位的原理
智能手机操作系统中内置了位置服务,由于每一个Wi-Fi热点都有一个独一无二的mac地址,智能手机开启Wi-Fi后就会自动扫描附近热点并上传其位置信息,这样就建立了一个庞大的热点位置数据库。这个数据库是对用户进行定位的关键。
如果你的智能手机连接上了某个Wi-Fi热点,那么就可以调用数据库中附近所有热点的地理位置信息,而服务器会参考每个热点的信号强弱计算出设备的大致地理位置。
具体来说,Wi-Fi能够定位,原理是这样的:
1、每一个无线AP(路由器)都有一个全球唯一的mac地址,并且一般来说无线AP在一段时间内不会移动;
2、设备在开启Wi-Fi的情况下,即可扫描并收集周围的AP信号,无论是否加密,是否已连接,甚至信号强度不足以显示在无线信号列表中,都可以获取到AP广播出来的mac地址;
3、设备将这些能够标示AP的数据发送到位置服务器,服务器检索出每一个AP的地理位置,并结合每个信号的强弱程度,计算出设备的地理位置并返回到用户设备;
4、位置服务商要不断更新、补充自己的数据库,以保证数据的准确性。
位置服务数据库的搭建
数据库中的数据主要来自于两个方面,一是用户提交的数据。Android手机用户在开启“使用无线网络定位”时会提示是否允许使用Google的定位服务,如果允许,用户的位置信息就被谷歌收集到。iPhone则会自动收集Wi-Fi的mac地址、GPS位置信息、运营商基站编码等,并发送给苹果公司的服务器。
同时谷歌、Skyhook两家位置服务提供商也在主动搜集Wi-Fi等热点的位置信息。Google的街景拍摄车有一个重要的功能就是采集沿途的无线信号,并打上通过GPS定位出的坐标回传至服务器。Skyhook在美国及欧洲一些国家也是直接开着信号采集车采集AP和基站的信号数据。
如果要杜绝位置服务商获取数据,难度就会比较高。用户需要不连接任何Wi-Fi热点,并且不使用相关的位置服务。也可以使用某些工具。例如谷歌曾发布一款选择退出工具,让无线路由器用户有效阻止谷歌搜集数据。
整理/张卫伟 图/杨殊宇
领取专属 10元无门槛券
私享最新 技术干货