IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> EC20定位模块+百度地图API使用踩坑 -> 正文阅读

[嵌入式]EC20定位模块+百度地图API使用踩坑

1 模块获得定位数据

? ? 模块装上gps天线,使用usb线连接电脑。安装模块usb驱动,成功后打开设备管理器,可以看见模块虚拟了3个串口。主要使用到AT和NMEA两个串口(本设备为COM10和COM9)。

? ? ?使用串口调试助手连接COM10,波特率115200,发送指令:AT+QGPS=1(回车),返回OK打开定位。然后打开COM9,可以看见模块发送上来的定位数据,需要等一段时间才能得到稳定的数据。也可以返回COM10,发送指令:AT+QGPSLOC?(回车),模块会返回一条定位数据:

+QGPSLOC:151219.0,2934.525787N,11413.135641E,0.7,188.0,2,208.25,0.0,0.0,050520,07

参考文章:EC20Demo

注:本文所用数据是以百度给出例子生成的假数据,仅作示例使用。

? ? 上述数据有效坐标信息为??2934.525787N,11413.135641E,这个为NMEA的坐标表示形式,需要转换为标准格式,转换代码如下:

/** NMEA to 国际WGS-84 nm_lat:NMEA纬度,nm_lon:NMEA经度*/
        private double[] NMEAToWGS84(double nm_lat, double nm_lon)
        {
            double[] WG_lat_lon = new double[2];
            int laH = (int)Math.Floor(nm_lat / 100);
            double laL = (nm_lat - laH * 100) / 60;

            int loH = (int)Math.Floor(nm_lon / 100);
            double loL = (nm_lon - loH * 100) / 60;

            WG_lat_lon[0] = laH + laL;//标准纬度
            WG_lat_lon[1] = loH + loL;//标准经度
            return WG_lat_lon;
        }

? ? 得到经度为:114.21892734521,纬度为:29.575429778924,这个就是国际标准WGS-84坐标。

?2 坐标转换

? ? ?百度坐标和国际坐标不同,直接使用国际坐标定位有很大的偏差,我们需要使用百度API转换,API接口如下:

https://api.map.baidu.com/geoconv/v1/?coords=114.21892734521,29.575429778924&from=1&to=5&ak=你的密钥 //GET请求

? ? 其中coords=114.21892734521,29.575429778924就是上一步得到的经纬度,from1&to&5表示从WGS84坐标转换为百度坐标,具体数字见下表。ak为开发者密钥,申请方法见下一节。

??

? ? 返回结果:

{"status":0,"result":[{"x":114.2307519546763,"y":29.57908428837437}]}

? ? 其中x即百度地图经度:114.2307519546763,y即百度地图纬度:29.57908428837437。

? ? 得到百度坐标后可以用百度坐标拾取系统或者地球在线输入坐标,查看地图上的定位点。

延申阅读:关于GPS坐标系和地图定位偏差WGS84转高德(火星)高德转百度

注:民间未经审批的测量纠偏是违法行为。

?3 地图API示例

??? ? ?使用百度地图API应先在百度地图开发平台注册为开发者,然后进入控制台,创建一个应用,得到密钥(AK)。

? ? 打开百度地图JS API示例,示例提供了各种应用场景的代码,最简单的显示地图代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <title>地图展示</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <style>
    body,
    html,
    #container {
        overflow: hidden;
        width: 100%;
        height: 100%;
        margin: 0;
        font-family: "微软雅黑";
    }
    .info {
        z-index: 999;
        width: auto;
        min-width: 22rem;
        padding: .75rem 1.25rem;
        margin-left: 1.25rem;
        position: fixed;
        top: 1rem;
        background-color: #fff;
        border-radius: .25rem;
        font-size: 14px;
        color: #666;
        box-shadow: 0 2px 6px 0 rgba(27, 142, 236, 0.5);
    }
    </style>
    <script src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=您的密钥"></script>
</head>
<body>
    <div class = "info">最新版GL地图命名空间为BMapGL, 可按住鼠标右键控制地图旋转、修改倾斜角度。</div>
    <div id="container"></div>
</body>
</html>
<script>
var map = new BMapGL.Map('container'); // 创建Map实例
map.centerAndZoom(new BMapGL.Point(116.404, 39.915), 12); // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放
</script>

? ? ?新建一个txt文档(例如Map.txt)将代码复制粘贴进去,保存,把后缀txt改成html(Map.html)再用浏览器打开即可显示地图。

? ? 需要注意的是,百度原示例中:

<script src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=您的密钥"></script>

这条没有https:,直接写成src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=您的密钥",这样会导致部分设备无法加载地图,打开为空白页。

? ? 可以使用其他程序载入这个地图,例如C#中可以用webBrowser控件:

string str_url = Application.StartupPath + "\\Map.html";
Uri url = new Uri(str_url);
webBrowser1.Url = url;

?参考文章:C#调用百度地图API经验分享

总结

坑1:输入AT命令时记得加回车,不然不会有回应

坑2:模块返回来的坐标是必须转换才能用在百度地图上,不然偏差很大

坑3:不要试图自己测量纠偏,不然滴滴就是你的前车之鉴

坑4:src后网址要加https: 不然无法加载

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:44:32  更:2021-09-24 10:46:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:33:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码