GPS的数据格式是DDMM.MMMMMM

获取到的GPS帧数据比如是:$GNRMC,112317.000,A,3438.1633,N,11224.4992,E,0.19,186.95,240916,,,A*7D

说明

经度112°24.4992′

纬度34°38.1633′

OneNet支持的GPS数据经测试是DD.DDDDD,因此需要转换

经度为 112+24.4992/60 = 112.40832

纬度为 34+38.1633/60 = 34.636055

上传到GPS的数据流为

{"datastreams":[{"id":"location","datapoints":[{"value":{"lon":112.40832,"lat":34.636055}}]}]}

OneNet的GPS坐标是经过百度地图纠偏过的,所以这部分转换交给平台,直接上传上面的数据即可

用Arduino测试下转换计算过程:

char lon_str[] = "11224.4992";
char lat_str[] = "3438.1633"; double longitudeToOnenetFormat()
{
double lon_temp = 0;
long lon_Onenet = 0;
int dd_int = 0;
long mm_int = 0;
double lon_Onenet_double = 0; lon_temp = atof(lon_str);
lon_Onenet =lon_temp*100000; //转换为整数 dd_int = lon_Onenet/10000000; //取出dd mm_int = lon_Onenet%10000000; //取出MM部分 lon_Onenet_double = dd_int + (double)mm_int/60/100000;//换算为Onenet格式
return lon_Onenet_double;
} double latitudeToOnenetFormat()
{
double lat_temp = 0;
long lat_Onenet = 0;
int dd_int = 0;
long mm_int = 0; double lat_Onenet_double = 0; lat_temp = atof(lat_str);
lat_Onenet =lat_temp*100000; //转换为整数 dd_int = lat_Onenet/10000000; //取出dd mm_int = lat_Onenet%10000000; //取出MM部分 lat_Onenet_double = dd_int + (double)mm_int/60/100000;//换算为Onenet格式
return lat_Onenet_double;
} void setup() {
// put your setup code here, to run once: Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
} Serial.println(longitudeToOnenetFormat(),5);
Serial.println(latitudeToOnenetFormat(),5);
} void loop(){ }

串口计算后输出内容

用到double类型,略微有偏差,这个偏差经过计算大概在地图上能差别1米内

112.40832
34.63605

GPS数据转换为OneNet需要的数据的更多相关文章

  1. java中byte数据转换为c#的byte数据

    最近在做下载方面的开发.有一个需求,就是读取要下载的文件中的一些数据,比如要读取这个文件包含的用户信息,但是怎么读都不对.后来搞了很久才发现,服务器上的文件里的用户信息,用C#写的存储方法来存储的,而 ...

  2. 将String类型的json数据转换为真正的json数据

    问题 在做JavaWeb项目的时候,我们经常需要将Java对象转化为Json数据格式响应到前台页面,但是转化完成之后,看着是Json类型的数据格式,但实际上是字符串类型,在这里说两个方法将String ...

  3. 将Json数据转换为ADO.NET DataSet对象

    Json数据转换为ADO.NET DataSet其实方法有很多,Newtonsoft.Json也提供了DataSet的Converter用以转换Json数据.但是有些情况下DataSet Conver ...

  4. 一个简单xml数据转换为数组的方法

    本人用easywechat做微信回复图文,从数据库中拿到的数据直接是xml拼好的数据,但是框架只有自带的获取xml格式的语句,所有需要将xml数据中所需要的数据拿出来用来拼接. 搜了好多资料说的都很麻 ...

  5. 数据转换为json格式的方法

    数据转换为json格式: 如果一张表中存在主外键关系,模板自动生成的类是不可以转换成JSON格式的,此时需要重新写一个类,类前面需加[DataContract],字段前需加[DataMember],实 ...

  6. 把表里的数据转换为insert 语句

    当表里面有数据时,怎么把表里的数据转换为insert 语句 (从别人那里看来的用SQLServer 2008 R2测试可用) CREATE PROC spGenInsertSQL @TableName ...

  7. 从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中

    //从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中 //作者:sandy //时间:2015-10-10 #inclu ...

  8. SQL列数据转换为字符串

    行列转换,将列数据转换为字符串输出 ) SET @center_JZHW = ( SELECT DISTINCT STUFF( ( SELECT ',' + ce_code FROM ap_cente ...

  9. 使用python将mysql数据库的数据转换为json数据

    由于产品运营部需要采用第三方个推平台,来推送消息.如果手动一个个键入字段和字段值,容易出错,且非常繁琐,需要将mysql的数据转换为json数据,直接复制即可. 本文将涉及到如何使用Python访问M ...

随机推荐

  1. eclipse 内存配置

    -server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m -XX:+UseG1GC

  2. Jeewx 捷微管家操作配置文档(开源版本号)

    1.1.1.  公众帐号管理 (1)捷微是第三方微信公众帐号管理平台,使用本平台前,请自行注冊申请微信公众帐号,操作流程请參照百度经验[怎样注冊微信公众帐号]: http://jingyan.baid ...

  3. JAVA 自动生成对应数据库表的JPA代码工具

    http://blog.csdn.net/zheng2008hua/article/details/6274659 关键词:JPA 数据库表代码自动生成,JPA代码生成     自动生成对应数据库表的 ...

  4. C语言学习笔记(一) 开发环境的搭建

    写这个系列的原因是因为最近在学习C语言,记录博客会让自己能够更好的掌握学习到的东西.编程贵在坚持,每天改变一丢丢! C语言开发两个软件,一个是文本编辑工具,Notepad++或者是EditPlus都可 ...

  5. SQL Server统计信息:问题和解决方式

    在网上看到一篇介绍使用统计信息出现的问题已经解决方式,感觉写的很全面. 在自己看的过程中顺便做了翻译. 因为本人英文水平有限,可能中间有一些错误. 假设有哪里有问题欢迎大家批评指正.建议英文好的直接看 ...

  6. hector_localization hector_salm rplidar同时编译

    1.将hector_localization包clone到src文件夹  进行功能包依赖安装 cd test_ws rosdep update rosdep install --from-paths ...

  7. 搭建apphouse(docker镜像私服)

    1.下载apphouse,地址为http://www.youruncloud.com/soft.html2.上传AppHouse_v1.0.2.tar到服务器并解压3../apphouse_insta ...

  8. Ubuntu 18.04 初始化(server版本 )

    系统安装 ubuntu 18.04 英文版,创建个人用户 初始系统 a.修改ip shell> vim /etc/network/interfaces auto ens33 iface ens3 ...

  9. JVM调优- jmap(转)

    http://blog.csdn.net/fenglibing/article/details/6411953 1.介绍 打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些 ...

  10. java 对象占用内存查看 以及JVM级别 方法修改等

    public interface Instrumentation 此类提供检测 Java 编程语言代码所需的服务.检测是向方法中添加字节码,以搜集各种工具所使用的数据.由于更改完全是进行添加,所以这些 ...