用MySql将DM lat long转换为十进制 [重复] 。

问题描述 投票:-1回答:1

我试图转换我目前的位置Lat.S3251多头:: S3251 Long: W07122位置转换为学位格式,即学位Lat Long -32.8500000, -071.3666667。Ie Degrees Lat Long -32.8500000, -071.3666667。

这些数据在mysql列中是这样的。

姓名: 位置:

Ship1 S3251 W07122

我想弄清楚mysql查询是这样显示的。

姓名: 纬度: 长:

Ship1 -32.8500000 -071.3666667

因此,我可以在谷歌地图上使用它,它需要小数的Lat Long。

我如何使用mysql转换?谅谅

mysql google-maps latitude-longitude
1个回答
2
投票

你可以使用一些函数来分离数据值,以便在公式中使用。下面的例子查询。

SELECT CASE WHEN latt LIKE 'S%' THEN (SUBSTRING(latt,2,2)+(RIGHT(latt,2)/60)+(0/3600))*-1 
            WHEN latt LIKE 'N%' THEN SUBSTRING(latt,2,2)+(RIGHT(latt,2)/60)+(0/3600) END AS 'Latitude',
       CASE WHEN longt LIKE 'W%' THEN (SUBSTRING(longt,2,3)+(RIGHT(longt,2)/60)+(0/3600))*-1 
            WHEN longt LIKE 'E%' THEN SUBSTRING(longt,2,3)+(RIGHT(longt,2)/60)+(0/3600) END AS 'Longitude'
FROM test1;

如你所见,我使用了 CASE 表达式来识别方向。SUBSTRING()RIGHT() 函数来分离公式的度数和分值。

PS: 或者你也可以用 SUBSTRING()MID(). 两者的操作都一样,后者的写法要短得多。

这是用一个公式从 第一环节 你在评论中提供的。enter image description here

我在这里做了一个小提琴的例子: https:/www.db-fiddle.comfcJjaArst8aZmQesyWDDXim1

© www.soinside.com 2019 - 2024. All rights reserved.