湖畔科技 发表于 2019-6-6 13:54:09

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

本帖最后由 湖畔科技 于 2019-6-6 13:55 编辑

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

2.添加百度地图标注
<div align="left">function loadMarker(x,y,oap_name){
      if(!x){return}
      //纠正gps偏差
      
      var iconv="../../../icons/access_point_b64.gif";
      var iconu="../../../icons/access_point_r64.gif";
      var iconSize = new BMap.Size(64, 64);//标注图片大小
      var offsetSize = new BMap.Size(32, 32);//偏移位
      //var point = new BMap.Point(x,y);
      var icon = new BMap.Icon(iconv,iconSize, {
                anchor:offsetSize
      });
      translateCallback = function (point) {
                map.clearOverlays();
                map.setCenter(point);
                var marker = new BMap.Marker(point, {icon:icon});
               
                marker.addEventListener("mouseover", function(){
                        this.setIcon(new BMap.Icon(iconu,iconSize,{anchor:offsetSize}));
                });
               
                marker.addEventListener("mouseout", function () {
                        this.setIcon(new BMap.Icon(iconv,iconSize,{
                              anchor:offsetSize
                        }));
                });      
               
                map.centerAndZoom(point,16);
               
                map.addOverlay(marker);
               
                var gc = new BMap.Geocoder();</div><div align="left">                var infoWindow1=null;
                gc.getLocation(point, function(rs){
                        var addComp = rs.addressComponents;
                        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>");
                        marker1.openInfoWindow(infoWindow1);
                });
                marker.addEventListener("click", function(){this.openInfoWindow(infoWindow1);});
      }
      
      BMap.Convertor.translate(new BMap.Point(x, y), 0, translateCallback);
}</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)

页: [1]
查看完整版本: GPS定位或者基站定位用谷歌百度地图看不准确?纠偏问题