前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >最全的LBS手机定位技术,定位原理教程

最全的LBS手机定位技术,定位原理教程

作者头像
知识与交流
发布2024-06-03 18:39:02
1.1K0
发布2024-06-03 18:39:02
举报
文章被收录于专栏:黑客技术家园
随着手机技术的发展定位方式也发生了很大的变化。获取手机位置有很多种方式。

第一种:CELL-ID定位原理 通过移动网络获取设备当前所在的Cell信息来获取设备当前位置。当设备位置更新设备会向当前服务小区报告当前位置信息,Cell ID定位的精度随着小区的覆盖范围而变化,从几十米到上百米不等。Cell ID是目前最容易使用的定位方式。只要获取手机访问的基站编号,在通过后台服务得到基站的坐标那就能获得手机的大体位置了。

第二种:AFLT定位原理 AFLT(Advanced Forword Link Trilateration) 是在定位操作时同时监听多个基站的信号,利用信号的延时和强度信号来确定手机到附件基站的距离,最后用三角定位算法计算用户的位置。一般在城市里基站的覆盖往往是重叠没有盲区的。所以手机往往会有多个基站的信息。这也是为什么基站定位城市比农村要准确很多的原因。

第三种:基站和GPS的混合定位(AGPS)

第四种:基站+ WIFI+ GPS的混合定位。 这种定位方式是目前最常用的定位方式,在使用手机地图通常是提示你打开GPS或者Wifi。如果要是在室外打开任意一个选项都可以大大提高定位精度。特别是打开wifi会瞬间提高定位精度。目前手机地图的定位方式基本都是这样的混合定位方式。原来也很简单就是IP定位,在你手机接入wifi时回获取到路由的硬件地址,如果你手机在线就可以通过这唯一地址得到路由的位置坐标,在通过对wifi的强度信息获取你的距离信息组后提高你的位置精度。

手机查看基站信息的方法 1. Android智能机:在拨打电话界面输入*#*#4636#*#* 查看相应的基站信息,一般为16进制,请选择1进制进行查询

2. IPhone:在拨打电话界面输入*3001#12345#*查看相应的基站信息

查出CID后你可以尝试在 http://www.minigps.net/cellsearch.html 定位一下自己手机的位置。

输入*#*#4636#*#* 选择->Phone information

方法1: 用浏览器打开http://www.minigps.net/cellsearch.html,然后输入lac和cid信息(mcc和mnc可以填0),如果数据正确就可以获得相应的经纬度

方法2: 发送HTTP请求到http://www.open-electronics.org/celltrack/cell.php?hex=0&lac=<lac>&cid=<cid>,可以获得一个html页面内容,通过正则进行解析,也可以获得经纬度信息

基站定位描述

基站定位一般应用于手机用户,手机基站定位服务又叫做移动位置服务(LBS——Location Based Service),它是通过电信移动运营商的网络(如GSM网)获取移动终端用户的位置信息(经纬度坐标),在电子地图平台的支持下,为用户提供相应服务的一种增值业务。

基站定位的大致原理为:移动电话测量不同基站的下行导频信号,得到不同基站下行导频的TOA(Time of Arrival,到达时刻)或TDOA(Time Difference of Arrival,到达时间差),根据该测量结果并结合基站的坐标,一般采用三角公式估计算法,就能够计算出移动电话的位置。其精度很大程度依赖于基站的分布及覆盖范围的大小,有时误差会超过一公里,实际的位置估计算法需要考虑多基站(3个或3个以上)定位的情况,因此算法要复杂很多。一般而言,移动台测量的基站数目越多,测量精度越高,定位性能改善越明显。

怎样才能基站定位?

基站定位一般应用在手机端,所以必须获取到基站信息才能进行基站的定位;基站信息

包含:MNC,LAC,CID (Cell) 三个参数;如果获取到以上三个参数即可以通过基站数据库,实现对应基站的位置进行定位,直接地图上显示出基站的位置;

-MCC,Mobile Country Code,移动国家代码(中国的为460);

-MNC,Mobile Network Code,移动网络号码(中国移动为00,中国联通为01);

-LAC,Location Area Code,位置区域码;

-CID,Cell Identity,基站编号,是个16位的数据(范围是0到65535)。

如何获取基站信息?

在GSM模块中,可以通过AT指令获取基站信息,以使用UBLOX的GSM模块为例,

当设备注册到移动网络时,按以下步骤即可获取对应的基站信息。

1. 获取MCC和NNC

  AT+COPS=3,2 //设置MCC和NNC输出格式为数字   AT+COPS=3,2   OK

  AT+COPS? //获取MCC和NNC   +COPS: 0,2,"46000",0   OK

  MCC:移动国家码,共3位,中国为460;

  MNC:移动网络码,共2位,移动GSM:00、02,移动TD:07,联通GSM:01,电信:03;

2. 发送AT+CREG=2 //设置基站信息输出

3. 发送AT+CREG? //获取基站信息

基站信息如何转换为经纬度?

根据个人理解,有如下2种方法:

1. 服务器接收到基站信息之后,在基站数据库中查找对应的经纬度。

  优点:速度快

  缺点:需要在服务器上部署基站数据,且基站数据不能及时更新

2. 通过第三方提供的SDK或API查找对应的经纬度

优点:数据比较准确,定位较为精确

缺点:接口不免费

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑客技术家园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档