项目中遇到地理定位的问题,没遇过不知道,遇过就发现这是个比较坑的问题。这个问题其实困扰了我挺久的,还不如一次性了解清楚。所以本文进行了一些小总结,先简单总结我看过的关于定位技术的资料,然后介绍前端开发中的可选定位方案,以及存在的一些问题。
定位技术
概念上很好理解,就是定位你在哪里的技术。常见的定位方式有基站定位,WiFi定位,IP定位,GPS定位等。
基站定位
基站是能进行信号交换的站点。手机能接受信号,打电话就是通过手机基站。这些基站是由国家移动通信运营商建的,比如中国移动,中国联通,中国电信。原理如下,通过手机接受不同几个基站的信号强度来判断二者之间距离,当然基站的位置信息本来是已知的,所以手机的位置就知道了。前提是手机必须处于SIM卡注册状态下。由于手机信号会受干扰,基站定位精度较低。而且精度也受基站的密度影响,密度越大越精准。
WiFi定位
WiFi是无线上网的一种技术。平时手机不连上WiFi的功能就能定位。大致的原理是,WiFi信号被设备检测到,数据库记录这个WiFi信号和设备对应的位置。当它被越来越多的设备检测到,它的位置就可以利用这些数据通过某种算法来得出。由于信号随着距离的增加而减少,根据设备获取到的WiFi信号强度就可以计算出两者之间的距离。知道了周围几个点,以及与这些点之间的距离,待定位的设备位置就不难计算出来了。WiFi定位是由谷歌提出的,主要解决了室内定位的问题。缺点是,当某个WiFi搬家的时候,数据库没有及时更新,就会出现定位不准的问题。
IP定位
每个能联网的设备都被分配了一个ip,通过查到数据库,可以粗略地知道这个ip所在的地理位置。你可以点这里试试IP定位。
GPS定位
GPS,全称Global Position System,全球定位系统,简单的说,就是天上有很多卫星(24颗),通过4颗卫星的位置以及卫星与待定位设备之间的距离,计算出该设备的位置。GPS精度高,但费电。还有在室内的时候,讯号就会被阻挡 ,所以室内GPS定位不准。
AGPS定位
AGPS是Assisted GPS的意思。由于GPS定位最初使用都有一个冷启动时间(2-3分钟),在此之前先借助其他的定位方式进行粗略地定位,然后可以较快地根据GPS进行精确定位。一般借用的辅助定位方式为基站定位。
定位技术比较
以上的定位方式各有优缺点,实际开发中一般同时采用多个定位方式进行定位。
定位方式 | 应用场景 | 优点 | 缺点 |
---|---|---|---|
基站定位 | 能通电话的手机 | 快速,耗能小 | 受基站的密度影响,信号也会被干扰 |
WiFi定位 | 有WiFi的地方 | 精度尚可,解决室内定位问题 | WiFi数据库更新不及时 |
IP定位 | 能上网的设备 | 精度依赖数据库 | |
GP |