Mysql 高德转天地图经纬度sql ,高德地图GCJ-02火星坐标系与GPS的WGS-84坐标系转换

-- mysql高德转天地图
SELECT 
 -- 经度
xlongitude * 2 -(xlongitude +
 (((300.0 + (xlongitude - 105.0) + 2.0 * (ylatitude - 35.0) + 0.1 * (xlongitude - 105.0) * (xlongitude - 105.0) + 
 0.1 * (xlongitude - 105.0) * (ylatitude - 35.0) + 0.1 * sqrt(abs((xlongitude - 105.0))) + 
 (20.0 * sin(6.0 * (xlongitude - 105.0) * 3.1415926535897932384626) + 20.0 * sin(2.0 * (xlongitude - 105.0) * 3.1415926535897932384626)) * 2.0 / 3.0 + 
 (20.0 * sin((xlongitude - 105.0) * 3.1415926535897932384626) + 40.0 * sin((xlongitude - 105.0) / 3.0 * 3.1415926535897932384626)) * 2.0 / 3.0 + 
 (150.0 * sin((xlongitude - 105.0) / 12.0 * 3.1415926535897932384626) + 300.0 * sin((xlongitude - 105.0) / 30.0 * 3.1415926535897932384626)) * 2.0 / 3.0) * 180.0) / (6378245.0 / (SQRT(1 - 0.00669342162296594323 * sin((ylatitude) / 180.0 * 3.1415926535897932384626) * sin((ylatitude) /180.0 * 3.1415926535897932384626))) * COS((ylatitude) / 180.0 * 3.1415926535897932384626) * 3.1415926535897932384626))) AS lon,
-- 纬度
 ylatitude * 2 - (ylatitude +
((-100.0 + 2.0 * (xlongitude - 105.0) + 3.0 * (ylatitude - 35.0) + 0.2 * (ylatitude - 35.0) * (ylatitude - 35.0) + 
0.1 * (xlongitude - 105.0) * (ylatitude - 35.0) + 0.2 * sqrt(abs(xlongitude - 105.0)) +
(20.0 * sin(6.0 * (xlongitude - 105.0) * 3.1415926535897932384626) + 20.0 * sin(2.0 * (xlongitude - 105.0) * 3.1415926535897932384626)) * 2.0 /3.0 + 
(20.0 * sin((ylatitude - 35.0) * 3.1415926535897932384626) + 40.0 * sin((ylatitude - 35.0) / 3.0 * 3.1415926535897932384626)) * 2.0 / 3.0 + 
(160.0 * sin((ylatitude - 35.0) / 12.0 * 3.1415926535897932384626) + 320 * sin((ylatitude - 35.0) * 3.1415926535897932384626 / 30.0)) * 2.0 / 3.0 ) * 180) / ((6378245.0 * (1 - 0.00669342162296594323)) / ((1 - 0.00669342162296594323 * sin((ylatitude) /180.0 * 3.1415926535897932384626) * sin((ylatitude) /180.0 * 3.1415926535897932384626)) * (SQRT(1 - 0.00669342162296594323 * sin((ylatitude) /180.0 * 3.1415926535897932384626) * sin((ylatitude) /180.0 * 3.1415926535897932384626)))) * 3.1415926535897932384626)) AS lat
 FROM `t_zuobiao` WHERE   mapType = '高德地图'

百度坐标转高德

-- 百度坐标转高德坐标
SELECT ROUND((SQRT((xlongitude - 0.0065) * (xlongitude - 0.0065) + (ylatitude - 0.006) * (ylatitude - 0.006)) + 0.00002 * SIN((ylatitude - 0.006) * 3.14159265358979324 * 3000.0 / 180.0) )
* COS(ATAN2((ylatitude - 0.006), (xlongitude - 0.0065)) + 0.000003 * COS((xlongitude - 0.0065) * 3.14159265358979324 * 3000.0 / 180.0)),6)  AS gaode_lon,
ROUND((SQRT((xlongitude - 0.0065) * (xlongitude - 0.0065) + (ylatitude - 0.006) * (ylatitude - 0.006)) + 0.00002 * SIN((ylatitude - 0.006) * 3.14159265358979324 * 3000.0 / 180.0) )
* SIN(ATAN2((ylatitude - 0.006), (xlongitude - 0.0065)) + 0.000003 * COS((xlongitude - 0.0065) * 3.14159265358979324 * 3000.0 / 180.0)),6)  AS gaode_lat
 FROM `t_zuobiao` WHERE   mapType = '百度地图'

创建测试表:

CREATE TABLE `t_zuobiao` (
  `xlongitude` varchar(50) DEFAULT NULL COMMENT '经度',
  `ylatitude` varchar(50) DEFAULT NULL COMMENT '纬度',
  `mapType` varchar(50) DEFAULT NULL COMMENT '坐标类型'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

添加测试数据:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值