1、SQL
-- lon 120.609017
SELECT (SQRT(120.602600 * 120.602600 + 31.210440 * 31.210440) + 0.00002 * SIN(31.210440 * PI() * 3000.0 / 180.0)) *
COS(ATAN2(31.210440,120.602600) + 0.000003 * COS(120.602600 * PI() * 3000.0 / 180.0)) + 0.0065 AS aa
-- lat 31.216801
SELECT (SQRT(120.602600 * 120.602600 + 31.210440 * 31.210440) + 0.00002 * SIN(31.210440 * PI() * 3000.0 / 180.0)) *
SIN(ATAN2(31.210440,120.602600) + 0.000003 * COS(120.602600 * PI() * 3000.0 / 180.0)) + 0.006 AS aa
2、JS
export function bd_encrypt(gg_lng, gg_lat) {
var X_PI = Math.PI * 3000.0 / 180.0;
var x = gg_lng, y = gg_lat;
var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI);
var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * X_PI);
var bd_lng = z * Math.cos(theta) + 0.0065;
var bd_lat = z * Math.sin(theta) + 0.006;
return {
lat: bd_lat,
lng: bd_lng
};
}
3、GO
func BdEncrypt(ggLng float64, ggLat float64) (float64,float64) {
var X_PI = math.Pi * 3000.0 / 180.0
var x = ggLng
var y = ggLat
var z = math.Sqrt(x*x + y*y) + 0.00002 * math.Sin(y * X_PI)
var theta = math.Atan2(y, x) + 0.000003 * math.Cos(x * X_PI)
var bdLng = z * math.Cos(theta) + 0.0065
var bdLat = z * math.Sin(theta) + 0.006
return bdLng, bdLat
}