1、卫星定位
其原理是接收机接收卫星广播,通过解析可见卫星的位置、距离等信息以及相应算法得出自己的位置信息,误差在15米范围内,当前可视卫星数量将影响定位精度,可见卫星数量越多,精度越高,实际测试中在正午定位精度较高,傍晚较低。
各国定位系统有:美国GPS、俄罗斯GLONASS、欧洲伽利略、中国北斗。
优点:定位精度高
缺点:室内商城、楼宇信号盲区无法定位
2、基站定位
运营商蜂窝基站的位置信息是固定的,通过接收一个或多个基站信号终端,再根据信号强度及基站位置进行推算自身位置,误差在百米或更多。
优点:定位简单速度快
缺点:误差太大
3、wifi定位
定位服务提供商(如百度、谷歌)基于wifi热点对设备进行定位,分两部分:
第一部分:基础数据
(1)手机端app通过设备内置的GPS模块或基站定位获取精度较高的定位信息,同时扫描周围已知wifi热点广播信息(ssid、mac);
(2)手机使用任意方式上网(2G/3G/4G/WIFI),后台模块将自身定位信息及扫描的wifi热点信息(ssid、mac、信号强弱)上传给提供商定位服务器,定位服务器经过反推得到wifi热点位置信息,因绝大多数手机自带GPS定位且wifi热点通常在10米左右半径的范围内,所以可得到精度较高的wifi热点位置信息。
(3)定位服务器将上述信息形成MAC-LOCATION对应表,此时完成首批基础数据建设,并且该数据不断更新和扩充。
第二部分:wifi定位
(1)手机端打开wifi(可不接入wifi),扫描周围已知wifi热点信息,使用任意方式上网(2G/3G/4G/WIFI)将扫描结果传给定位服务器并发起wifi定位请求;
(2)定位服务器对比库中已有MAC-LOCATION对应表,通过复杂算法基于一个或多个热点位置信息、信号强度最后推算出手机的定位信息并返回,从而完成定位过程。
新的热点设备在开机并发送ssid广播后,也会被其他手机端通过扫描->上传->反推的过程,得知其精确的位置信息,而手机无需接入新的热点。wifi定位的方式在定位服务器侧将产生巨大的数据量,形成一个巨大的位置信息库,而市面上种类及数量繁多的手机设备因安装了地图应用则充当了定位服务提供商的数据采集器,其定位精度仅次于卫星定位,误差几十米内。
优点:精度高,速度快
缺点:用户被迫贡献了流量,定位热点的行为在某些国家违法
三种定位精度:卫星定位 > wifi定位 > 基站定位
现在做项目中用到定位的模块,接触到LBS 定位,LBS定位和GPS定位的区别:
GPS(Global Positioning System,全球定位系统)和LBS(LBS--Location Based Service,移动位置服务),就技术原理而言,GPS车载定位通过接受GPS卫星提供的经纬度坐标信号来进行定位,而LBS则通过移动通信的基站信号差异来计算出手机所在的位置。
单从GPS技术来看,其本身的精度还是很高的,但是我们现在使用的是美国的GPS民用信号,这种技术的最高精度,也就是十几米。这种误差分为两个方面,第一是美国人故意放进去的,是一个偏移量。而在GPS技术最早引入国内的时候,当时的工程师其实是想到了一些提高精确度的办法的:那就是在城市中最高的地标建筑物上,通常是电视塔里面,安装一个校正信号发射器。遗憾的是,后来这个方案没有得意实施,主要是为了国家安全方面的考虑(无解了)。目前网络上能找到一些偏移量的纠正算法,不过是否准确合适还有待检验。
首先要知道,什么是LBS定位?先了解这个概念,大家就不会扯这么远,LBS定位其实就是基站定位,可能读者会觉得这是废话,那我再讲清楚一点,LBS定位就是特么的定到基站的位置,根本不是你设备的位置,所以LBS定位甚至和你的设备位置关系不大,设备SIM卡接入哪个基站,你的位置就在哪里,而接入基站受到基站密度、基站用户数量的多方面因素影响,不是你离哪个基站进就接入哪个基站,这是自动的,无法控制且未知的,于是就出现了题主所说的会到处飘的问题。在对定位偏差要求比较高的情况下,LBS定位就是一坨X,它只能让你大概知道在哪里,真的用来定位找人的话,我建议派出几百号人,拿高音喇叭地毯式边喊边搜索吧。
百度高德不开WIFI情况下不可能准确,他们在没有GPS信号的情况下,利用的是WIFI+GPS数据进行定位的。这些数据怎么来?这就是让人羡慕嫉妒恨的地方,比如百度,安装量有多大?可以说是天量,当用户连接WIFI定位的时候,数据全部都被百度搜集起来,也就说,你这个WIFI热点,具体在哪里,已经有精确的GPS数据保存在服务器上,下次你再进入这个WIFI信号覆盖范围的时候(不需要密码接入),就直接显示GPS位置给你,然后大家都感觉百度好强大啊~其实都是大家的功劳。注意,百度并不需要你设备真的输入密码接入WIFI,只要你的GPRS是通的,在某个WIFI信号覆盖的范围之内,它就可以知道你的精确位置。