0

我正在寻找一个以整数格式保存经度/纬度的系统。它被称为兰花跟踪软件。

我不知道如何将这些整数值转换为度/分/秒。我首先将它除以一百万,但之后需要进行一些其他转换才能获得度/分/秒

是否有跟踪单位的标准以整数形式保存 Long/Lat 以将其转换为度/分/秒?

4

2 回答 2

1

将纬度/经度坐标表示为整数的可能性有很多:

  1. 十进制度 * 1E6(也称为微度)
  2. 十进制度 * 1E7
  3. 毫角秒

1) 和 2) 经常被使用。

因此,首先找出它们是如何表示的,在 1) 和 2) 的情况下,您首先将它们转换为十进制度。(例如 48123456 => 48.123456)。您知道经度在 [-180.0, 180.0] 范围内,纬度在 [-90.0, 90] 范围内

然后很容易将十进制度 (DEG) 转换为度分秒 (DMS) 只需查找 wiki 或来自 njzk2 的答案。
但请注意,我不确定他的回答是否处理特殊情况时舍入错误导致秒 59.999999 变为 60.0 = 0 的情况,在这种情况下,分钟必须增加。

于 2013-06-07T09:56:10.377 回答
1

度/分/秒只是以 60 为底显示的秒数。

假设 Orchid 跟踪软件确实使用秒,您可以value这样转换:

seconds = value mod 60
minutes = (value / 60) mod 60
degrees = (value / (60*60))

但是,如果值以百万分之一度为单位:

degrees = integer part of (value / 1000000)
minutes = integer part of (((value - degrees * 1000000) * 60) / 1000000)
seconds = integer part of (((value - degrees * 1000000 - minutes * 1000000 / 60) * 60 * 60) / 1000000)

或者,您可以将百万分之一度转换为秒:

total_seconds = value * 60 * 60 / 1000000

并应用第一个公式。

于 2013-06-07T08:28:19.533 回答