湖畔开源电子论坛

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
热搜: 4G NB ZigBee WiFi
查看: 4667|回复: 0

GPS定位或者基站定位用谷歌百度地图看不准确?纠偏问题

[复制链接]

88

主题

89

帖子

850

积分

超级版主

Rank: 8Rank: 8

积分
850
发表于 2019-6-6 13:54:09 | 显示全部楼层 |阅读模式
本帖最后由 湖畔科技 于 2019-6-6 13:55 编辑

1.加入convertor.js文件
  1. <div align="left"><script type="text/javascript" src="http://api.map.baidu.com/getscript?v=1.4"></script>
  2. <script type="text/javascript" src="http://dev.baidu.com/wiki/static/map/API/examples/script/convertor.js"></script></div>
复制代码


2.添加百度地图标注
  1. <div align="left">function loadMarker(x,y,oap_name){
  2.         if(!x){return}
  3.         //纠正gps偏差
  4.         
  5.         var iconv="../../../icons/access_point_b64.gif";
  6.         var iconu="../../../icons/access_point_r64.gif";
  7.         var iconSize = new BMap.Size(64, 64);//标注图片大小
  8.         var offsetSize = new BMap.Size(32, 32);//偏移位
  9.         //var point = new BMap.Point(x,y);
  10.         var icon = new BMap.Icon(iconv,iconSize, {
  11.                 anchor:offsetSize
  12.         });
  13.         translateCallback = function (point) {
  14.                 map.clearOverlays();
  15.                 map.setCenter(point);
  16.                 var marker = new BMap.Marker(point, {icon:icon});
  17.                
  18.                 marker.addEventListener("mouseover", function(){
  19.                         this.setIcon(new BMap.Icon(iconu,iconSize,{anchor:offsetSize}));
  20.                 });
  21.                
  22.                 marker.addEventListener("mouseout", function () {
  23.                         this.setIcon(new BMap.Icon(iconv,iconSize,{
  24.                                 anchor:offsetSize
  25.                         }));
  26.                 });        
  27.                
  28.                 map.centerAndZoom(point,16);
  29.                
  30.                 map.addOverlay(marker);
  31.                
  32.                 var gc = new BMap.Geocoder();</div><div align="left">                var infoWindow1=null;
  33.                 gc.getLocation(point, function(rs){
  34.                         var addComp = rs.addressComponents;
  35.                         infoWindow1 = new BMap.InfoWindow("<div style=‘margin-top: 13px;font-size:15px;color:red;font-weight:bold;‘>"+oap_name+"</div><div style=‘margin-top: 5px;font-size: 13px;‘>地址:"+addComp.province + addComp.city +  addComp.district +  addComp.street + addComp.streetNumber+"<br/>经度:"+x+"<br/>纬度:"+y+"</div>");
  36.                         marker1.openInfoWindow(infoWindow1);
  37.                 });
  38.                 marker.addEventListener("click", function(){this.openInfoWindow(infoWindow1);});
  39.         }
  40.         
  41.         BMap.Convertor.translate(new BMap.Point(x, y), 0, translateCallback);
  42. }</div>
复制代码


3.如果是单片机上如何纠偏呢?
很多人在做GPS实验的时候都会遇到这的情况GPRMC里面的经纬度在google地图里面查询不准确,其实这样的情况是你没有分清楚 度和度分秒。
GPRMC里面出来的是度分秒格式,但是在google里面要用到的是度的形式,下面我们来给大家分析下 。
看我们得到经纬度如下图
很多人看到了 A字母后面的就是经纬度
将经纬度输入google地图发现位置和自己的位置差了几千米以上  其实你错了 ,
我们得到的GPRMC里面的格式是 度。分' 秒"  格式  但是在google里面是 度。的格式 所以需要转换下。
我们再输入GPRMC得到的 度分秒格式 ,后面的就是度的形式 ,所以我们输入后面的就可以了。
================================================================================
笔记:
GPS->2604.22321 = 26度04分13.3926秒 (0.22321*60秒) = 26.070386833度 (26+04/60 + 13.3926/3600)


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|官方淘宝店|手机版|湖畔科技官网|加入QQ群|湖畔开源电子论坛 ( 公安备案:45010702001370(交互式论坛) 工信部备案:桂ICP备17008293号 )

GMT+8, 2024-12-6 21:43 , Processed in 0.043540 second(s), 21 queries .

Powered by 湖畔科技

Copyright © 2001-2021

快速回复 返回顶部 返回列表