Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MySql将DM lat long转换为十进制_Mysql_Google Maps_Latitude Longitude - Fatal编程技术网

使用MySql将DM lat long转换为十进制

使用MySql将DM lat long转换为十进制,mysql,google-maps,latitude-longitude,Mysql,Google Maps,Latitude Longitude,我正在尝试将我当前的位置Lat:S3251 Long:W07122转换为学位格式。 横向度数-32.8500000,-071.3666667 此数据位于mysql列中,如下所示: 姓名:职位: 第1船S3251 W07122 我正在尝试通过mysql查询来显示它,如下所示: 名称:Lat:Long: 船舶1-32.8500000-071.3666667 因此,我可以在谷歌地图上使用它,这需要以小数表示的Lat-Long 如何使用mysql转换此文件? 谢谢您可以使用一些函数来分离公式中要使用的数

我正在尝试将我当前的位置Lat:S3251 Long:W07122转换为学位格式。
横向度数-32.8500000,-071.3666667

此数据位于mysql列中,如下所示:

姓名:职位: 第1船S3251 W07122

我正在尝试通过mysql查询来显示它,如下所示:

名称:Lat:Long: 船舶1-32.8500000-071.3666667

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

如何使用mysql转换此文件?

谢谢

您可以使用一些函数来分离公式中要使用的数据值。下面的查询示例:

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()
函数来分隔公式的度数和分钟数

p/S:或者,您可以将
子字符串()
替换为
MID()
。两者的操作相同,后者的写入时间要短得多

这是使用您在评论中提供的公式:


我在这里做了一个例子:

在这里找到了它,它是如何用php完成的,但我想知道是否有人有mysql公式来实现这一点。这与您正在转换的格式不一样。我认为mysql中没有现成的函数来进行转换。尤其是你的lat long数据似乎是非标准的(如果我错了,请纠正我)。您可能需要将公式应用到查询中,但必须确保数据一致且可用,以便计算公式正确无误。在这里找到一些建议,上面的示例是度和分钟。它们不是度分秒。他们每个人都有S N E或W。谢谢,非常感谢。正是我想要的。我不明白,为什么这么多人对我的问题投了反对票。不客气@Ossi,很高兴我能帮上忙。关于反对票,我猜可能是因为你没有提出任何质疑?但它也可能是由许多其他原因造成的。你可以参考。