`
wanghailiang333
  • 浏览: 195256 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

百度地图的坐标(北斗与GPS)转换问题

 
阅读更多

先声明,这里的坐标转换api是JS交互的。

 

看过百度地图api的童鞋知道有个方法,可以将北斗或GPS的坐标转换为百度地图的球面坐标。

 

方法名称为:BMap.Convertor.translate(point,0,translateCallback);

 

具体参数就不解释了,请谷歌百度一下吧。

 

我想说的是,这个方法是一个回调的方法,point是北斗或GPS的坐标点,当坐标转换完成后使用translateCallback这个回调方法传回改变后的坐标点。

 

我很好奇为何需要用回调的方式来转换坐标点?直接给一个转换公式不是更好吗?

 

看代码。如果要使用BMap.Convertor.translate必须引入convertor.js,坐标转换的玄机就在这了

convertor.js的代码不多就30多行,看了老半天都没发现有什么坐标转换的公式

 

但有个意外收获,发现如下语句:

 var xyUrl = "http://api.map.baidu.com/ag/coord/convert?from="+ type + "&to=4&x=" + point.lng + "&y=" + point.lat + "&callback=BMap.Convertor." + callbackName;
瞬间发现上当了,终于明白为什么要使用回调这么麻烦的方法来完成坐标转换的问题了。

 

原来坐标的转换的公式根本就不想给你看到,百度转换坐标的方法是这样的:

1 获取原始的北斗或GPS的坐标值
2 将坐标点发送到api.map.baidu.com/ag/coord/convert?...
3 有返回值后调用回调函数,将转换后的坐标点给你

这使用回调是因为需要向另外一个地址请求处理,是异步的操作。

实验一下这个链接,返回如下:

{"error":0,"x":"MTA4LjI5Njc5Mzc.....","y":"MjIuODQzMTM2MDE....."}

ps:没有传入 callback=BMap.Convertor值。值不完全我省略了,不然你就知道我在哪了。

 

 

这个结果貌似有点出人意料,x和y的值并非我们想想要的坐标点

做个测试:

test_point = new BMap.Point("MTA4LjI5Njc5Mzc.....", "MjIuODQzMTM2MDE.....");
alert(test_point.lng + ":" + test_point.lat);

发现其实这些值是编码后的坐标点,不管是什么编码方式,用百度的API是可以解读的

 

现在终于知道百度坐标点是如何完成转换的了。(其实还是不知道,看不到服务器的代码。。。)

 

http://my.oschina.net/u/782560/blog/121615

 

 

0
0
分享到:
评论

相关推荐

    各地图API坐标系统比较与转换(WGS84坐标系、火星坐标系、百度坐标系、搜狗坐标系、图吧坐标系)

    * 各地图API坐标系统比较与转换; * WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系, * 谷歌地图采用的是WGS84地理坐标系(中国范围除外); ...

    java版GPS坐标转换为高德地图坐标

    此文件为纯java编写的GPS坐标转换到高德地图坐标,直接将文件添加到工程目录,调用转换函数即可,输入是double类型,输出是double数组,注意:输入输出数据的单位都是度。

    GPS-UTC时间转换&坐标转换.rar

    利用C#编写的GPS时间与UTC时间相互转换,以及WGS84坐标系下与北京54坐标系下的坐标转换 可视化效果好 易操作

    地图坐标系转换

    * 各地图API坐标系统比较与转换; * WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系, * 谷歌地图采用的是WGS84地理坐标系(中国范围除外); * ...

    GPS坐标系转换以及经纬度距离计算

    % * 各地图API坐标系统比较与转换; % * WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系, % * 谷歌地图采用的是WGS84地理坐标系(中国范围除外); ...

    mygps1.zip_1Gps_GPS_GPS+北斗双模定位_北斗_百度地图

    GPS和北斗双模定位,获取经纬度并转换为百度坐标在百度地图上显示出来

    代码分析Python地图坐标转换

    各地图API坐标系统比较与转换; WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系, 谷歌地图采用的是WGS84地理坐标系(中国范围除外); GCJ02坐标...

    rtkcmn.rar_rtklib坐标转换_坐标系_大地坐标系_站心坐标系

    多种坐标系转换,时间系统转换源代码。参考rtklib 内容包括:gps时转北斗时及世界协调时,空间直角坐标系转大地坐标系以及站心系。

    北斗地基增强系统在电力地理信息数据采集中的应用

    北斗地基增强系统投入使用前须对该区域布置控制网,求出该地区的坐标转换七参数和高程拟合参数,这样就省去了利用RTK技术每次外业而求校正参数,极大地提高了电力地理信息数据采集的质量和效率。实例分析表明,北斗地基...

    GPS周计算程序

    GPS周计算器是一款便捷实用的GPS计算工具,它能够帮助用户转换标志,用户只需要提供已知数据就能快速计算出三角点坐标位置,实现了协调世界时转换为GPS时和北斗时,可进行基本的时间转换,由现在通用的日历时间转换到GPS...

    matlab自动代码生成变量-Net_Diff:Net_Diff是用于GNSS下载,定位和分析的软件

    也可以将其与北斗增强信息一起用于SPP / PPP(授权用户)。 它支持数据分析,包括坐标绘图,坐标比较,卫星编号,PDOP,卫星天空视图,卫星可见性,周滑,对流层,电离层,负观测校正,定位残差绘图和KML文件写入。 ...

Global site tag (gtag.js) - Google Analytics