GPS转百度,百度近似转换GPS

一、GPS坐标转换百度坐标

直接通过百度接口获得他的百度坐标


BMap.Convertor.translate(gpsPoint,0,translateCallback);  


二、百度坐标转换GPS坐标

   这是一个比较难的坐标转换,因为百度经过了加密,并没有公开转换的方法,这里提供一种替代的方法:

百度坐标和GPS坐标转换在很近的距离时偏差非常接近。
假设你有百度坐标:x1=118.512741,y1=31.672570
把这个坐标当成GPS坐标,通过接口获得他的百度坐标:x2=118.52445071937,y2=31.676354334473
通过计算就可以得到GPS的坐标:
x = 2*x1-x2,y = 2*y1-y2
x=118.50103128063002
y=31.668785665527


html代码如下:

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gbk" />

<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?v=1.5&ak=9fb983ecd9b505f8fedcc9ab07c65e3e"></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 = 118.512741;

var yy = 31.672570;


var gpsPoint = new BMap.Point(xx,yy);


//地图初始化

var bm = new BMap.Map("allmap");

bm.centerAndZoom(gpsPoint, 15);

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);

    alert("转化为百度坐标为:"+point.lng + "," + point.lat);

    var x = 2*xx-point.lng;
    
    var y = 2*yy-point.lat; 

    alert("百度坐标转化GPS为:"+x + "," + y+"此时GPS标注(xx,yy)当做百度坐标");

}


setTimeout(function(){

    BMap.Convertor.translate(gpsPoint,0,translateCallback);     //真实经纬度转成百度坐标

}, 2000);

</script>


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值