我正在寻找一个以整数格式保存经度/纬度的系统。它被称为兰花跟踪软件。
我不知道如何将这些整数值转换为度/分/秒。我首先将它除以一百万,但之后需要进行一些其他转换才能获得度/分/秒
是否有跟踪单位的标准以整数形式保存 Long/Lat 以将其转换为度/分/秒?
我正在寻找一个以整数格式保存经度/纬度的系统。它被称为兰花跟踪软件。
我不知道如何将这些整数值转换为度/分/秒。我首先将它除以一百万,但之后需要进行一些其他转换才能获得度/分/秒
是否有跟踪单位的标准以整数形式保存 Long/Lat 以将其转换为度/分/秒?
将纬度/经度坐标表示为整数的可能性有很多:
1) 和 2) 经常被使用。
因此,首先找出它们是如何表示的,在 1) 和 2) 的情况下,您首先将它们转换为十进制度。(例如 48123456 => 48.123456)。您知道经度在 [-180.0, 180.0] 范围内,纬度在 [-90.0, 90] 范围内
然后很容易将十进制度 (DEG) 转换为度分秒 (DMS) 只需查找 wiki 或来自 njzk2 的答案。
但请注意,我不确定他的回答是否处理特殊情况时舍入错误导致秒 59.999999 变为 60.0 = 0 的情况,在这种情况下,分钟必须增加。
度/分/秒只是以 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
并应用第一个公式。