首页 > 编程知识 正文

js百度地获取经纬度

时间:2023-05-04 23:05:09 阅读:265964 作者:465

前端Js处理百度地图和腾讯/高德地图经纬度不同的转换问题

ps: 腾讯、高德、谷歌经纬度是一样的

方法一:

其实在百度和高德都各自提供了经纬度转换算法
高德:
https://lbs.amap.com/api/javascript-api/reference/lnglat-to-address/#m_AMap.convertFrom

百度:
http://lbsyun.baidu.com/jsdemo.htm#a5_1

我估计其他厂商应该也有

方法二:

直接贴代码

亲测有效

/** * 1腾讯/高德地图转百度地图经纬度 */ 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 }; } /** * 2百度转腾讯/高德 */ 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 { longitude: lngs, latitude: lats }; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。