(二)WI-FI辅助定位

来源:互联网 发布:java tochararray用法 编辑:程序博客网 时间:2024/05/16 05:01

   最早做Wi-Fi定位的是Skyhook。IPhone/IOS开始也用Skyhook,但从4.0开始,苹果开始用自己的数据库,Skyhook被无情的抛弃。Apple自己的定位数据库建立很顺理成章:Skyhook收集数据还要派车走街串巷,但Apple有众多的IPhone用户帮忙crowd-sourcing,所有IOS用户都可以为苹果贡献匿名的定位数据:一个坐标及其周边的所有Wi-Fi AP和基站的信息。
  
  说个题外话,如果有水友对于IOS定位很有兴趣,可以看看下面的两篇文章(这两篇文章的链接来源于知乎的匿名用户,感谢他的分享):
  How the iPhone knows where you are
http://www.macworld.com/article/1159528/how_iphone_location_works.html
 这篇文章把iPhone定位的原理说的很清楚。最早的纯GPS定位最慢要12.5分钟,现在定位神速的多是依靠Wi-Fi或基站辅助的AGPS
  Apple Q&A on Location Data
http://www.apple.com/pr/library/2011/04/27Apple-Q-A-on-Location-Data.html
  上面一文里有提到的苹果官方的说明。因为11年有人发现iPhone里竟然保存了用户一年多的定位记录,还同步到iTunes备份,严重危害用户隐私。导致苹果发此文澄清。
  总之Apple会依靠用户上传的Wi-Fi以及基站数据建立一个大的数据库,用户都在默默奉献… (Google也是这么干的,不过也派车队,Google车比较多)
  用户的设备上会保存用户自己最近7天的Wi-Fi AP/基站数据,以及从Apple下载的大数据库的一小部分数据,覆盖用户的周边地区。这些数据都有助于GPS快速定位,甚至在到了5代依旧令人发指的不装GPS芯片的iPod Touch上面靠Wi-Fi独立定位。
  扯了这么说,话说回来

WI-FI辅助定位

  1.每一个无线AP都有一个全球唯一的MAC地址,并且一般来说无线AP在一段时间内是不会移动的
  2.设备在开启Wi-Fi的情况下,即可扫描并收集周围的AP信号,无论是否加密,是否已连接,甚至信号强度不足以显示在无线信号列表中,都可以获取到AP广播出来的MAC地址
这里写图片描述

  3.设备将这些能够标示AP的数据发送到位置服务器,服务器检索出每一个AP的地理位置,并结合每个信号的强弱程度,计算出设备的地理位置并返回到用户设备
  4.位置服务商要不断更新、补充自己的数据库,以保证数据的准确性,毕竟无线AP不像基站塔那样基本100%不会移动
这里写图片描述

  这样的位置服务商现在来说只有Skyhook和Google两家.他们收集位置数据的方式也是相似的
  (一)主动采集
  Google的街景拍摄车还有一个重要的功能就是采集沿途的无线信号,并打上通过GPS定位出的坐标回传至服务器;
  Skyhook在美国及欧洲一些国家也是直接开着信号采集车采集AP和基站的信号数据,相对来说覆盖城市没有Google多,目前中国仅有少数城市有覆盖,并且他们在包括中国在内的多个国家招募有偿工作者,以协助Skyhook收集位置数据。当然你也可以直接在其网站上提交一个MAC地址。
  (二)用户提交:
  通常是以静默方式向同时拥有Wi-Fi和GPS的终端用户收集位置数据
  Android手机用户在开启“使用无线网络定位”时会提示是否允许Google的定位服务手机匿名地点数据。
  
  用通俗的话来说吧,谷歌的工程师们是这样想的:一个wifi热点的覆盖范围仅有几十米,全世界绝大多数的wifi热点都是固定位置的,他们又拥有独一无二的MAC地址,如果应用基站定位的原理,那么就可以获得相当精确的位置信息了。可是,世界上那么多wifi热点,你总不能跑到各个国家,敲开市民的门去测量吧?谷歌想到了他的神器——谷歌地图。
  假如你的家里有个自己设立的无线路由器,经常开机,你的邻居正在阳台上用手机玩谷歌地图,恰好他手机的wifi是开着的,不过没有连接你家的热点。当你的邻居用GPS准确在地图上定位后,谷歌服务器会记录周边的wifi热点信息。正好,你的路由器开着,然后被记录到数据库了:某国家某省某市某小区某楼东侧(其实是用经纬度)有一个MAC地址为12-2e-3f-4a-09-3d的wifi热点。几天后你打算晚上吃川菜,于是连上你的路由器打开谷歌地图打算搜索,这时你惊奇的发现没开GPS,但是你的位置却精确的定位在某国家某省某市某小区某楼东侧。这是为什么呢?这就是WI-FIi依赖定位:你打开谷歌地图后,会上传周围的wifi热点信息,然后2-2e-3f-4a-09-3d上传到服务器上,服务器根据这个地址反馈你邻居用GPS定位出来的经纬度给你,从而实现精确匹配位置。当世界上N多N多人重复上述定位的时候,谷歌就可以建立起来一个丰富而且强大的wifi热点位置数据库。
  
  知道原理之后确定它的定位条件也不难:1、必须开启wifi,无论是否连接某一个热点。2、手机必须能上网,移动数据或者wifi联网皆可。(不要指望谷歌允许手机内置这些热点的位置信息,这可是笔财富)

  Wifi定位有众多优势,这也就是为什么很使用定位时会经常跳出来询问是否打开WI-FI的原因了。个人感觉WI-FI定位有很大的潜力,特别是在WI-FI众多的今天,不过它还有很大缺点,希望能够解决这一难题吧~下一篇将介绍ANDROID和IOS的WI-FI辅助定位(转载)

0 0
原创粉丝点击