zoukankan      html  css  js  c++  java
  • 百度地图经纬度转换

     一、使用公式进行转换

    优点:转换快

    缺点:会有一定偏差

    查看公式

    二、使用百度地图自带的convertor转换

    优点:偏差小

    缺点:网络延时,转换慢

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
    body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
    #l-map{height:100%;width:78%;float:left;border-right:2px solid #bcbcbc;}
    #r-result{height:100%;width:20%;float:left;}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?ak=申请的key&v=2.0"></script>
    <script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>
    <title>GPS转百度</title>
    </head>
    <body>
    <div id="allmap"></div>
    </body>
    </html>
    <script type="text/javascript">
    //GPS坐标
    var xx = 30.521302;
    var yy = 114.345211;
    var gpsPoint = new BMap.Point(xx,yy);
    
    //地图初始化
    var bm = new BMap.Map("allmap");
    bm.centerAndZoom(gpsPoint, 15);
    bm.enableScrollWheelZoom(true); 
    bm.addControl(new BMap.NavigationControl());
    
    //添加谷歌marker和label
    var markergps = new BMap.Marker(gpsPoint);
    bm.addOverlay(markergps); //添加GPS标注
    var labelgps = new BMap.Label("我是GPS标注哦",{offset:new BMap.Size(20,-10)});
    markergps.setLabel(labelgps); //添加GPS标注
    
    //坐标转换完之后的回调函数
    translateCallback = function (point){
        var marker = new BMap.Marker(point);
        bm.addOverlay(marker);
        var label = new BMap.Label("我是百度标注哦",{offset:new BMap.Size(20,-10)});
        marker.setLabel(label); //添加百度label
        bm.setCenter(point);
        console.log("转化为百度坐标为:"+point.lng + "," + point.lat);
    }
    
    setTimeout(function(){
        BMap.Convertor.translate(gpsPoint,0,translateCallback);     //真实经纬度转成百度坐标
    }, 2000);
    </script>

    三、coordtransform 坐标转换

    地址:https://github.com/wandergis/coordtransform

    按作者给出的示例用法,测试了几组坐标的

    gps转百度:测试结果和我们平台转换后的结果基本一致,只有最后1~2位小数不同,用的应该是同一种公式;

    百度转gps:超过3位小数,开始出现不同,定位时需要取5位小数,存在一定误差

     

     

  • 相关阅读:
    谈屡面屡胜的面试经验
    同步异步和阻塞非阻塞的区别
    Ansible条件测试
    Ansible playbook基础组件介绍
    Ansible的基础元素和YAML介绍
    Ansible常见模块介绍
    Ansible介绍及安装部署
    Spark介绍及安装部署
    安装部署Apache Hadoop (完全分布式模式并且实现NameNode HA和ResourceManager HA)
    安装部署Apache Hadoop (本地模式和伪分布式)
  • 原文地址:https://www.cnblogs.com/suiyueshentou/p/6100515.html
Copyright © 2011-2022 走看看