|
|
51CTO旗下网站
|
|
移动端

手机定位的基本原理

目前智能手机的使用已经越来越普遍,手机定位也是手机上的一个核心基础功能。举一个常见的应用如叫车,司机需要知道你在哪里,同时打车软件也需要基于司机和乘客的位置规划一条路线,让司机更高效的行驶到用户这里。这就是典型的定位服务的应用。

作者:AA小小夏来源:今日头条|2020-03-21 14:57

目前智能手机的使用已经越来越普遍,手机定位也是手机上的一个核心基础功能。举一个常见的应用如叫车,司机需要知道你在哪里,同时打车软件也需要基于司机和乘客的位置规划一条路线,让司机更高效的行驶到用户这里。这就是典型的定位服务的应用。当然,除去这种应用,用户位置本身的展示,也是地图产品中不可缺少的。那么app是如何得知当前设备所处的位置的呢?

手机定位的基本原理

可用于无线定位的信号:①GPS信号②基站信号③wifi信号,以上三种是最常用的定位方式,此外还有蓝牙/IP/地磁场等手段

通常智能手机有以下两种定位方式:

一,调用系统级定位能力:

无论哪个系统(IOS、安卓、WP)都提供了一套系统级定位能力,这样的定位能力,对应着是一套系统级API,这个API一般来说,总是会有如下几个

精度的选项:

  • 高精度:能搜到GPS卫星,则使用GPS定位,否则,则使用WIFI定位,如果WIFI和GPS都无法定位成功,只能根据基站来给出定位结果了。
  • 平衡功耗:禁用GPS(因为它非常耗电),优先使用WIFI,如果WIFI不可用,则用基站来进行定位。
  • 低功耗(被动定位):根据不同系统的规定,实现方式也不同,但大体上都是共享其他app的定位结果,即其他app以高精度、平衡功耗的方式得到位置,那么这个位置也一并推送给当前使用“低功耗定位”的app,也就是该app不消耗额外的能耗,就完成了定位。

当然,这种系统级定位能力是有着软肋的,软肋在于以下两点:①在基站、WIFI定位能力上,系统定位能力取决于系统自己在这方面投入数据收集推算的能力,这个是参差不齐的。举个简单的例子,百度和高德在中国采集了成百上千个公共场所的室内定位信息,使之能达到米级的室内定位,苹果做了吗?谷歌做了吗?微软做了吗?他们怎么和国内的服务商拼效果?

手机定位的基本原理

二、调用第三方定位SDK

对于可以公开读取基站、WIFI信息的Android手机系统,国内的百度、高德等地图厂商自行实现了定位SDK,该定位SDK的作用就是通过系统接口读取到原始定位信息,然后借助于各家自行部署维护的数据库,查询到当前扫描到的基站、WIFI的位置,最终计算出更准确的定位结果,通过SDK的接口,返回给开发者。这么做的好处,在于能够让app的定位能力脱离对手机系统的依赖。

举个例子,一个app他如果只是调用系统定位接口,那么在行货手机,由于手机厂商已经把定位的网络服务器重定向为国内定位服务商,所以肯定可以定位,但是在水货手机上因为系统底层是直接连google服务器的,就会无法定位。但用户就是上帝,出现了这个事情在用户看来,就是不能接受的,为了保证app在所有手机上都可以定位,开发者就会不得不使用第三方的独立定位SDK。

手机定位的基本原理

【编辑推荐】

  1. 华为HMS将与印度Indus OS合作 40万APP应用替代谷歌GMS
  2. 欧美移动支付APP崛起:当“另类支付”不再另类
  3. 作为苹果App Store的审核人员是一种什么体验?
  4. iOS 13.4正式版或于3月18日发布,将带来Apple Pay支付宝和更多交通卡
  5. GitHub移动App上线:四大特性,手机端无缝完成git任务
【责任编辑:未丽燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

秒杀高并发白话实战

秒杀高并发白话实战

主流高并发架构
共15章 | 51CTO崔皓

56人订阅学习

网络排障一点通

网络排障一点通

网络排障及优化调整案例
共20章 | 捷哥CCIE

454人订阅学习

VMware NSX 入门到实战

VMware NSX 入门到实战

网络虚拟化革命性技术
共16章 | Cloud袁

226人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微