高德经纬度转换百度经纬度方式,sql,java,js,GO

这篇博客探讨了将经纬度从一种坐标系转换到另一种坐标的算法,包括SQL、JavaScript和Go三种编程语言的实现。通过数学公式,如平方根、正切、余弦等,实现了BD09加密坐标到GCJ02加密坐标的转换,适用于地理定位应用。
摘要由CSDN通过智能技术生成

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
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值