/**
* 百度坐標系 (BD-09) 與 火星坐標系 (GCJ-02)的轉換
* 即 百度 轉 谷歌、高德
*
@param
{*}
lat
百度緯度
*
@param
{*}
lng
百度經度
*/
const
bdTogcj =
function(
lat,
lng) {
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
g2_lnn =
z *
Math.
cos(
theta);
let
g2_lat =
z *
Math.
sin(
theta);
return [
g2_lat,
g2_lnn]
}
/**
* 火星坐標系 (GCJ-02) 與百度坐標系 (BD-09) 的轉換
* 即谷歌、高德 轉 百度
*
@param
{*}
g2_lat
火星坐標緯度
*
@param
{*}
g2_lng
火星坐標經度
*/
const
gcjTobd =
function(
g2_lat,
g2_lng) {
let
x_pi =
3.14159265358979324 *
3000.0 /
180.0;
let
z =
Math.
sqrt(
g2_lng *
g2_lng +
g2_lat *
g2_lat) +
0.00002 *
Math.
sin(
g2_lat *
x_pi);
let
theta =
Math.
atan2(
g2_lat,
g2_lngg2_lng) +
0.000003 *
Math.
cos(
g2_lng *
x_pi);
let
bd_lng =
z *
Math.
cos(
theta) +
0.0065;
let
bd_lat =
z *
Math.
sin(
theta) +
0.006;
return [
bd_lng,
bd_lat]
}