百度地图、高德地图经纬度转换
MarkLin 2021-04-13 JavaScript
# 前端Js处理百度地图和腾讯/高德地图经纬度不同的转换问题
腾讯、高德、谷歌经纬度是一样的
百度和高德都各自提供了经纬度转换算法
# 方法一:
高德: 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33