【问题标题】:subtract decimal degrees (longitude readings) in php在php中减去十进制度数(经度读数)
【发布时间】:2014-07-21 20:05:49
【问题描述】:

在PHP中,如何从$Longitude_2 = 82.22中减去$Longitude_1 = 72.8790721063599? 这些是来自Google geocoding 的十进制度值。

我需要找出差异并将其转换为时间。

据我所知,在这种情况下,时间值接近 40 分钟。

此外,当涉及纵向位置的时间差时,1 度 = 4 分钟而不是 60 分钟。因此,如果我有度数的坐标差异,我可以将其转换为时间单位。是在相关经度到达当地标准时间

【问题讨论】:

  • 它们不是弧度,而是度数。您不是将其转换为时间,而是将十进制度转换为度、分和秒(通常缩写为 DMS)。
  • 好的,我同意,它的十进制度 (DD) 不是弧度。我的意思是最后使用 1 dg = 4 分钟。但是我不知道如何通过手头的两个 DD 值来获得 PHP 的差异。
  • 1 度是 60 分钟。
  • 来吧,当它是关于经度和纬度和时间的时候,它的 1 度 = 4 分钟。请看这里:sunlit-design.com/infosearch/equivalence.php。您的意思是时针和分针,如下所示:mathforum.org/library/drmath/view/65468.html
  • 那么,您如何获得 DD 格式的值的差异?然后将值转换为度数,以便最终获得时间。这对我来说不是小事,你能帮忙吗!!!!!!

标签: php latitude-longitude astronomy radians


【解决方案1】:

在这里解决我认为是您的核心问题:

那么,如何获得 DD 格式的值的差异?

$Longitude_2 = 82.22;
$Longitude_1 = 72.8790721063599;

//get the difference
$diff = $Longitude_2 - $Longitude_1; //9.3409278936401

然后将值转换为度数,以便可以在 结束。

您的答案存储在$diff 中,已经是十进制度数,所以没有什么可以转换的。根据您的消息来源,1 度 = 4 分钟时间,因此只需相乘:

//get the time value
$diff_time = $diff * 4; //37.3637115745604

因此,对于您的具体情况,实际时间值接近 37 分钟。

【讨论】:

  • 我同时使用了类似这样的东西 $lngDeg = (82.22 - $lngtxt) * (M_PI/180); $wholeD = 地板($lngDeg); $fractionD = $lngDeg - $wholeD; $lngM = $fractionD *60; $wholeM = 楼层($lngM); $fractionM = $lngM - $wholeM; $lngS = $fractionM *60;使用上面我得到的 37.84 分钟你的可能要好得多。不涉及PI值!!!谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
相关资源
最近更新 更多