gpt4 book ai didi

php - 需要转换坐标集

转载 作者:行者123 更新时间:2023-12-02 13:50:03 25 4
gpt4 key购买 nike

我在这里遇到了另一个与坐标相关的查询。我有许多 CSV 文件,它们都提到了一堆坐标,但是坐标的格式不同,例如某些文件的坐标如下所示:

40.0873°N 20.1531°E

虽然有些人是这样的:

27°50′21″N 00°11′07″W

我需要一种在 PHP 中设置函数的方法:

首先推导出坐标的格式

然后将坐标转换为纬度和经度,如下所示:

37.235
-115.811111

另外,我知道第二种格式是小时分钟秒 - 问题是如何从这种字符串中提取小时分钟和秒。

任何帮助将不胜感激...

最佳答案

代码:

print_r(parse("40.0873°N 20.1531°E"));
print_r(parse("27°50′21″N 00°11′07″W"));
function parse($coord)
{
$strings = split(' ',$coord);
$ret['lat'] = degree2decimal($strings[0]);
$ret['lon'] = degree2decimal($strings[1]);
return $ret;
}
function degree2decimal($deg_coord="")
{
$dpos=strpos($deg_coord,'°');
$mpos=strpos($deg_coord,'‘');
$spos=strpos($deg_coord,'"');
$mlen=(($mpos-$dpos)-1);
$slen=(($spos-$mpos)-1);
$direction=substr(strrev($deg_coord),0,1);
$degrees=substr($deg_coord,0,$dpos);
$minutes=substr($deg_coord,$dpos+1,$mlen);
$seconds=substr($deg_coord,$mpos+1,$slen);
$seconds=($seconds/60);
$minutes=($minutes+$seconds);
$minutes=($minutes/60);
$decimal=($degrees+$minutes);
if (($direction=="S") or ($direction=="W"))
{ $decimal=$decimal*(-1);}
return $decimal;
}

输出:

Array
(
[lat] => 40.08732425
[lon] => 20.153142527778
)
Array
(
[lat] => 27.835277777778
[lon] => -0.18333333333333
)

关于php - 需要转换坐标集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1699833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com