百度地图经纬度转换

 一、使用公式进行转换

优点:转换快

缺点:会有一定偏差

查看公式

二、使用百度地图自带的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位小数,存在一定误差

 

 

posted @ 2016-11-25 10:08  ximi007  阅读(1939)  评论(0编辑  收藏  举报