android百度地图单点定位_如何通过网络位置实现高精度定位(上)如何定位你家路由器...

//文本作者: 自科部 庞学明

如何通过网络位置实现高精度定位(上)-如何定位你家路由器

前言:定位技术在实际中的应用,除了GPS卫星定位等大家比较熟悉的方式以外,其实还有多种方式,在这里给大家介绍两种常见的方式:通过Wi-Fi路由器定位以及IP定位。这次先是Wi-Fi路由器定位。

Wi-Fi的MAC地址定位方法介绍

  大家看到标题时可能会有疑问,怎么可能通过Wi-Fi路由器来定位呢,一个路由器又不是和某个确切地址固定的,就比如我网购一个路由器,那么我的收货地址以及使用这个路由器的地点是不确定的,路由器怎么知道它的位置呢?

  先来说说实际应用:平时大家在打开手机软件,特别是涉及到定位功能的软件时,例如高德地图,百度地图,或者是嘀嘀打车之类的软件,往往会要求打开手机的Wi-Fi功能,但是并不需要连接上Wi-Fi,那么这其中涉及到什么技术的应用呢?

cccb7e454230c448266de0efeb217c36.png高德地图定位时请求打开WiFi

MAC地址

  首先看一个引用概念:MAC地址(英语:Media Access Control Address),直译为媒体访问控制地址,也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的地址。在OSI模型中,第三层网络层负责IP地址,第二层数据链接层则负责MAC地址。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。(维基百科)

  由以上可知,每一台路由器设备都有一个唯一的mac地址。mac地址通常由12个16进制数组成,并且每2位为一组。既然是唯一的,并且信号覆盖范围有限,那么就有可能用来实现定位。

7e1e5f3ccf9c7376e96711489a809f61.png

路由器背面标签上的MAC地址

   路由器背面的标签中一般会标有这台路由器的MAC地址,同时,一般在手机Wi-Fi列表中搜索到Wi-Fi名称,格式一般为:路由器厂家+mac地址后六位,例如:HiWiFi_5F8E04,其实后面的这串16进制的组合,正是路由器MAC地址的后6位

  假设如下情景:一个导航软件为了能够定位到你的位置,在你打开GPS时,同时请求打开手机Wi-Fi,在通过GPS卫星确定了具体位置之后,同时扫描周围的Wi-Fi信号,并且记录下了这些WiFi路由器设备的MAC地址,那么这些路由器设备的MAC地址,就与这个特定的地点建立起了联系,这些数据会一并上传到这个软件的数据服务器,数据服务器会对此建立一个表格。

  那么下一次另外的用户在这个地点使用这个地图软件时,软件首先会扫描周边的Wi-Fi的MAC地址,直接通过在服务器的数据,确定了一个大致的范围,然后再通过GPS进一步定位,得到准确的位置。同时进一步,假如扫描到了新的Wi-Fi信号,那么数据也会上传到服务器,进行数据更新,从而实现准确度的不断提高。

f69c3d0b0710fa75eed1359a50a55627.png流程示意图

  地图软件公司:如百度地图,高德地图都掌握着大量数据,但是由于数据并不完全一样,而且最后得出的实际位置是通过各种数据整合得出的,所以有可能出现同一部手机,打开不同的地图软件,显示的位置却不一样的情况。

6a30db014111e602a7aa4742d1fb3a22.png查询示意图

PS:想要体验通过路由器的MAC地址查询位置,可以前往这里

https://www.opengps.cn/Data/WIFI/Search.aspx

  但是并不是所有的Wi-Fi的地址都能够查询,使用时间越久的路由器,越有可能被查询到。便携式随身Wi-Fi热点由于自身特性,并不长期处于固定位置,会导致数据无法查询或数据不准确。

  也就是说,利用了Wi-Fi路由器一般位置固定的特性,使其与实际地点建立联系,得到一个庞大的数据表来实现快速,精确的定位。由于GPS卫星不能确保在每个地方都信号良好,或者是城市有较多高楼时,会对GPS定位的速度和精度产生不同程度的影响。通过GPS定位与Wi-Fi的MAC地址定位相结合,很好的弥补了这一缺陷。

更进一步的应用:室内导航

  于2018年8月6日发行的Android操作系统的第9个主要版本Android Pie,为IEEE 802.11mc Wi-Fi协议添加了平台支持(也称为Wi-Fi往返时间,RTT),可以在应用中使用室内定位功能。在提供硬件支持的Android 9设备上,在启动位置服务并勾选“允许获取地理位置信息”选项后,应用就可以使用RTT API测量与附近Wi-Fi接入点(AP)的距离。设备不需要连接到便可以使用RTT,而且为了保护隐私,只有手机能够确定距离,而AP不可以。

  通过测量从设备到三个或更多AP的距离,代入三角定位模型,可以计算设备位置至1到2米的精度,从而实现室内导航。其中较为常用的场景,就是在大型购物商场的室内导航。

dd42c164a1ad74ed3f8f324f7b6aed66.png

室内导航示例

查看高德地图Android 室内定位SDK

https://lbs.amap.com/api/android-indoorlocation-sdk/summary

   也就是说,虽然路由器和某个地点没有确切的联系,但是人们人为地对此建立起了联系,从而实现一个路由器与一个地址相对应。所以以后大家使用手机需要定位时,可以尝试把GPS和Wi-Fi的开关同时打开,理论上定位速度和准确度都有所提高。

  这次就到此结束,下次再写一篇通过IP地址实现高精度定位的文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值