JS: 百度地图与腾讯/高德地图经纬度转换

Posted 小义博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS: 百度地图与腾讯/高德地图经纬度转换相关的知识,希望对你有一定的参考价值。

前言
在开发中使用了第三方的数据,由于经纬度使用的是第三方的数组,他们使用的是百度的地图坐标。在项目中使用时,能用百度地图去解析自然是最好的,但是呢,该项目是基于微信小程序的,百度地图针对小程序提供的API功能不是很完善,难以实现想要的需求,所以采用腾讯官方的地图。

开始
使用不同的地图,相应的经纬度会存在些许偏差,腾讯和高德是同一坐标的,可以互用,百度的坐标与两者稍有不同,使用前,需要先经过换算。

实践
将腾讯/高德地图经纬度转换为百度地图经纬度

function qqMapTransBMap(lng, lat) {
    let x_pi = 3.14159265358979324 * 3000.0 / 180.0;
    let x = lng;
    let y = lat;
    let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
    let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
    let lngs = z * Math.cos(theta) + 0.0065;
    let lats = z * Math.sin(theta) + 0.006;
   
return {
      lng: lngs,
      lat: lats 

}
 将百度地图经纬度转换为腾讯/高德地图经纬度

function bMapTransQQMap(lng, lat) {
    let x_pi = 3.14159265358979324 * 3000.0 / 180.0;
    let x = lng - 0.0065;
    let y = lat - 0.006;
    let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
    let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
    let lngs = z * Math.cos(theta);
    let lats = z * Math.sin(theta);
    
return {
      lng: lngs,
      lat: lats     
}  
}
总结
嘘寒问暖 不如打笔巨款~


————————————————
版权声明:本文为CSDN博主「車句」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39015132/java/article/details/82958562

以上是关于JS: 百度地图与腾讯/高德地图经纬度转换的主要内容,如果未能解决你的问题,请参考以下文章

高德地图腾讯地图谷歌中国区地图与百度地图坐标系

iOS App内部调起百度地图、高德地图、腾讯地图

百度地图经纬度批量查询(百度地图地址批量转换为经纬度)。

PC端调用百度地图(自定义控件、高德坐标转百度坐标)

高德地图,百度地图,腾讯地图哪个好?

js中实现高德地图坐标经纬度转百度地图坐标