ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于物联网卡实现的GPS定位

2019-05-20 20:49:41  阅读:485  来源: 互联网

标签:定位 定位器 请求 联网 某宝 卫星 GPS


本次主要记录利用某宝所售的定位器,查看其原理并实现二次开发。


某宝产品缺点优点

某宝所售的定位器有续航时间久、定位准确、上传位置模式选择等功能。但是经过实验,续航是其描述的三分之一,最主要的是定位误差比较大(比如明明没动,结果使用APP查看却是在一直移动)。这个是比较严重更多问题,但是对于一些移动的轨迹,还是相对比较准确,但是还有一个缺点就是不能实时定位,基本都是定时上传位置。因此购买定位器还是只对一些一些场景有用而已。

物联网卡定位原理

GPS的定位原理其实就是通过四颗已知位置的卫星来确定GPS接收器的位置
卫星的位置可以根据星载时钟所记录的时间在卫星星历中查出。而用户到卫星的距离则通过纪录卫星信号传播到用户所经历的时间,再将其乘以光速得到(由于大气层电离层的干扰,这一距离并不是用户与卫星之间的真实距离,而是伪距)。
当GPS卫星正常工作时,会不断地用1和0二进制码元组成的伪随机码(简称伪码)发射导航电文。导航电文包括卫星星历、工作状况、时钟改正、电离层时延修正、大气折射修正等信息。然而,由于用户接受机使用的时钟与卫星星载时钟不可能总是同步,所以除了用户的三维坐标x、y、z外,还要引进一个变量 t 即卫星与接收机之间的时间差作为未知数,然后用4个方程将这4个未知数解出来。所以如果想知道接收机所处的位置,至少要能接收到4个卫星的信号。如下图所示:
定位原理.png
以上参照http://xinwen.eastday.com/a/180607222241130-2.html

基于某宝产品的二次开发

售卖的定位器基本都是需要下载APP查看、操作等。因此这次主要是采用抓包的方式进行接口的查看,从而是实现二次开发。

  1. 手机设置wifi代理,在电脑打开Fiddler
    设置参照之前的博文:https://richule.com/index.php/archives/42/

  2. 分析抓包数据
    通过Fillder可以发现,其实该APP就是定时发送请求到某宝自己搭建的服务器,从而返回一些数据。其中定时发送三个请求:
    1、获取设备主要信息;2、获取APP首页的通知(如低电量等);3、其他数据信息。
    通过分析返回的数据,可以知道,其实三个请求主要是第一个请求有效,返回的信息主要有:
    1.是否在移动(CarNowStatus=Move)
    2.查看的设备ID(购买的定位器ID)
    3.设备的经纬度Latitude、Longitude;
    4.当前自己的经纬度OLat、OLng;
    5.剩余电量、是否处于睡眠等信息。
    贴上这次请求的参数以及相应数据:

    请求的参数:loginName=设备ID&deviceId=430247&password=123456&language=zh_CN&loginType=1&mapType=Baidu&key=9DJ273HF123F34

    响应的数据:{“Code”:“1”,“DeviceID”:“设备ID”,“DeviceName”:“N1免卡-04751”,“icon”:“1”,“battery”:"-1",“batdj”:“5”,“DeviceUtcDate”:“2019/03/17 08:23:01”,“ServerUtcDate”:“2019/03/17 08:23:01”,“OLat”:“23.11678000000000000000”,“OLng”:“109.60631000000000000000”,“Latitude”:“23.11960”,“Longitude”:“109.61706”,“Course”:“due north”,“Speed”:“0.00”,“Status”:“WIFI 电量100%”,“CarNowStatus”:“Move”,“CarStopTime”:""}

通过多次实验发现,请求参数的deviceId、key是不会改变的,因此实现二次开发也是比较容易的。当然请求的URL也直接可以在Fiddler得到了。

总结

某宝不同的产品,接口、请求、响应自然不一样,但是原理基本都一样的,就是定时请求、解析响应。
至于想解决定位准确等(自行制作定位器及搭建后台服务器),这个…还是逃~~~
c罗.jpg
2018-2019欧冠1/8决赛尤文3:0马竞扭转

个人博客:Loak 正 - 关注人工智能及互联网的个人博客
文章地址:基于物联网卡实现的GPS定位)

标签:定位,定位器,请求,联网,某宝,卫星,GPS
来源: https://blog.csdn.net/luoz_java/article/details/90340209

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有