Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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
Php 将DDM转换为DEC(十进制度数)_Php_Coordinates_Geo_Degrees - Fatal编程技术网

Php 将DDM转换为DEC(十进制度数)

Php 将DDM转换为DEC(十进制度数),php,coordinates,geo,degrees,Php,Coordinates,Geo,Degrees,我有一组坐标,格式为DDM(Degrees decimal minutes),需要将其转换为十进制度数。 从找到的函数中,我可以转换DMS,但我没有找到一个函数或公式,可以将DDM转换为DEC 例如,坐标可以是: 北纬64度0分,西经22度33分 从转换工具我知道结果是:64,-22,55 所以问题是如何转换DDM格式 编辑: 数据来自如下表: [Latitude_degrees]: 64 [Latitude_minutes]: 0 [Latitude_hemisphere]: N [Longi

我有一组坐标,格式为DDM(Degrees decimal minutes),需要将其转换为十进制度数。 从找到的函数中,我可以转换DMS,但我没有找到一个函数或公式,可以将DDM转换为DEC

例如,坐标可以是:

北纬64度0分,西经22度33分

从转换工具我知道结果是:64,-22,55

所以问题是如何转换DDM格式

编辑:


数据来自如下表:

[Latitude_degrees]: 64
[Latitude_minutes]: 0
[Latitude_hemisphere]: N
[Longitude_degrees]: 22
[Longitude_minutes]: 33
[Longitude_hemisphere]: W
简单数学

作为伪代码:

Latitude = Latitude_degrees + Latitude_minutes / 60 
if Latitude_hemisphere = 'S' then 
    Latitude = -Latitude

经度的等效值

你是否真的有一个字符串值“64度0分N,22度33分W”?如果是这样,您需要提取数字,以及N/S和E/W(使用sscanf或regexps可以轻松完成)。。。。这是你的出发点;然后是简单的数学数据来自这样一个表格:【纬度度】【纬度分钟】【纬度半球】64,0,N【经度度度】【经度分钟】【经度半球】22,33,当它是简单的数学:
Latitude=Latitude\u degrees+Latitude\u minutes/60
如果
Latitude\u hemission='s'
那么
Latitude=-Latitude
。。。。与之相当的是,这似乎确实有效。你能把这句话写进一个答案吗,非常感谢:)