wifi定位技术
wifi定位是iphone升级到1.1.3之后新加的应用服务,拿到机器后开始试用一下wifi定位。在美国达拉斯,定位按钮被按下后,旋转了大约2秒钟,所在的街道就立刻闪现在屏幕中央了。难怪乔布斯也说:“It's really cool”,这个功能确实神奇呀。
以前用过GSM定位,那个误差能大到数公里,而wifi定位出的中心点距离我所在也就是50米。随后我到网上查了一下关于这个技术的文章,了解到了下面的情况。
做这项技术是由一家成立于2003年叫Skyhook Wireless(http://www.skyhookwireless.com/)的公司。在SkyHook主页上可以下载一个叫Loki的软件,是PC上用的,也支持wifi定位,不过好像只能在xp用。还没升到1.1.3的iphone用户可以先试试Loki。
这个技术的原理是利用下面三条事实:
- wifi热点(也就是AP,或者无线路由器)越来越多,在城市中更趋向于空间任何一点都能接收到至少一个AP的信号。(在美国,每个点收到3、5个AP信号的情况相当多见。中国也会越来越多的)
- 热点只要通电,不管它怎么加密的,都一定会向周围发射信号。信号中包含此热点的唯一全球ID。即使距离此热点比较远,无法建立连接,但还是可以侦听到它的存在。
- 热点一般都是很少变位置的,比较固定。
这样,定位端只要侦听一下附近都有哪些热点,检测一下每个热点的信号强弱,然后把这些信息发送给网络上的Skyhook的服务器。服务器根据这些信息,查询每个热点在数据库里记录的坐标,然后进行运算,就能知道客户端的具体位置了,最后坐标告诉客户端。容易理解的是,收到的AP信号越多,定位就会越准。
不过,一次成功的定位需要两个先决条件:
- 客户端能上网
- 侦听到的热点的坐标在Skyhook的数据库里有
第一条不消说了,不管是wifi还是edge,只要能连上Skyhook的服务器就行。
第二条是Skyhook的金矿所在。对于Skyhook如何知道每个AP的坐标信息有两种说法:
1. 有一种说法是靠网友自己搜集,然后发给Skyhook,Skyhook会付钱。
2. 不过官方网站上的说法是开着车满大街转悠,边走边采集AP信号,并用GPS定位,从而就有了坐标信息。而且他们会定期重新开车采集数据,以适应热点的变化。
相对之下,第2条更靠谱,而且成本并不高。比方说采集北京,设备上一个带GPS和wifi的PDA足以,然后装到出租车上,每月给司机200、300的,让他就正常拉客人。只要有3、5个司机合作,数据就采集下来了,并不断地更新。司机也一定会很乐呵,这纯粹是无成本的额外收入呀,还能享受一下GPS。
这里有一个此服务已经覆盖的区域的电子图:http://www.skyhookwireless.com/howitworks/coverage.php。可以看到我国的北京、香港和台北是有这个服务的。所以现阶段在大陆地区只有北京能用,不知道在中国有没有其他网络应用可以实现wifi定位。
wifi定位精度比GPS要低,受服务范围限制,而且没有方向、速度等数据,不能导航,更不能离线使用。不过它有比GPS更优越的地方,就是在人口、楼群越密集的地方,使用的效果会更好。GPS启动时间长,在室内是无效的,天气不好的时候表现也欠佳,楼群太密集的地方也不太好用。而这些因素都被wifi定位克服了。
我想这还不是真正的定位,这就是个玩具,真正的定位是用wifi信号定位这学问就深了
来源:
Gears: http://gears.googlecode.com/
Google 地图 API: http://code.google.com/intl/zh-CN/apis/maps/documentation/reference.html
wifi定位技术: http://blog.csdn.net/NewMap/archive/2009/03/17/3999337.aspx