当前位置: 首页 > 科技观察

手机定位的基本原理

时间:2023-03-19 22:20:36 科技观察

目前,智能手机的使用越来越普遍,手机定位也是手机上的一项核心基础功能。以一个常见的应用程序为例,例如叫车。司机需要知道你在哪里。同时,网约车软件还需要根据司机和乘客的位置规划路线,让司机更高效地开到用户身边。这是定位服务的典型应用。当然,除了这个应用之外,用户位置本身的显示在地图产品中也是必不可少的。那么应用程序如何知道设备的当前位置呢?可用于无线定位的信号:①GPS信号②基站信号③wifi信号,以上三种是最常用的定位方式,此外还有蓝牙/IP/地磁场等。一般智能手机有以下两种定位方式方法:1.调用系统级定位能力:无论哪个系统(IOS、Android、WP)都提供了一套系统级定位能力,这种定位能力对应一套系统级定位能力。一般来说,这个API总是有如下精度选项:高精度:如果能找到GPS卫星,则使用GPS定位,否则,使用WIFI定位,如果WIFI和GPS都不能定位成功,则只能根据基站。平衡功耗:关闭GPS(因为它很耗电),优先使用WIFI,没有WIFI时使用基站定位。低功耗(被动定位):根据不同系统的规定,实现方式也不同,但一般都是共享其他app的定位结果,即其他app获取位置精度高,功耗均衡,所以这个位置也被推送给当前使用“低功耗定位”的App,即App在不消耗额外能量的情况下完成定位。当然,这种系统级的定位能力也有弱点,表现在以下两点:①在基站和WIFI定位能力方面,系统的定位能力取决于系统在数据采集和计算方面投入的能力。这片区域,这是参差不齐的。举个简单的例子,百度和高德已经从国内数百个公共场所采集了室内定位信息,实现了米级室内定位。苹果做到了吗?谷歌做到了吗?微软做到了吗??他们如何与国内服务提供商竞争?二、调用第三方定位SDK对于可以公开读取基站和WIFI信息的Android手机系统,国内的地图厂商如百度、高德已经自行实现了定位SDK。功能是通过系统接口读取原始定位信息,然后利用各公司部署和维护的数据库查询当前扫描到的基站和WIFI位置,最终计算出一个比较准确的定位结果。通过SDK接口,返回给开发者。这样做的好处是可以让app的定位能力独立于手机系统。比如一个app只调用系统定位接口,那么在行货手机上,由于手机厂商已经将定位网络服务器重定向到国内的定位服务商,肯定是可以定位的,但是在水货手机上手机因为系统底层是直连谷歌服务器的,所以会定位不到。但用户是上帝,这件事用户是无法接受的。为了保证APP在所有手机上都能定位,开发者将不得不使用第三方独立的定位SDK。