Orchid Tracking 软件 - 如何将十进制值转换为 GPS 度/分/秒
Posted
技术标签:
【中文标题】Orchid Tracking 软件 - 如何将十进制值转换为 GPS 度/分/秒【英文标题】:Orchid Tracking software - how to convert decimal values to GPS Degrees/minutes/seconds 【发布时间】:2013-06-07 08:14:55 【问题描述】:我正在研究一个以整数格式保存经度/纬度的系统。 它被称为兰花跟踪软件。
我不知道如何将这些整数值转换为度/分/秒。 我首先将它除以一百万,但之后需要进行一些其他转换才能获得度/分/秒
是否有跟踪单位的标准,将 Long/Lat 保存为整数以将其转换为度/分/秒?
【问题讨论】:
请发布一些示例值,如果可能,请发布它们的大致记录位置(纬度、经度) 【参考方案1】:将纬度/经度坐标表示为整数的可能性有很多:
-
十进制度* 1E6(也称为微度)
十进制度 * 1E7
毫角秒
1) 和 2) 经常被使用。
所以首先找出它们是如何表示的,在情况 1) 和 2) 中,您首先将它们转换为十进制度。 (例如 48123456 => 48.123456)。 您知道经度在 [-180.0 , 180.0] 范围内,纬度在 [-90.0, 90] 范围内
然后将十进制度 (DEG) 转换为度分秒 (DMS) 很简单,只需查找 wiki 或来自 njzk2 的答案。 但请注意,我不确定他的回答是否处理特殊情况时舍入错误导致秒 59.999999 变为 60.0 = 0 的情况,在这种情况下,分钟必须增加。
【讨论】:
【参考方案2】:度/分/秒只是以 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
并应用第一个公式。
【讨论】:
嗨,这很有帮助,谢谢,我认为它使用秒数,就好像我最初取值并将其除以一百万一样,整数部分(度数)不在 90 和-90。当我使用度数的顶部公式((值/(60 * 60)))时,我得到一个大于30 000的度数。为了获得学位,我应该对这个值做些什么吗? 您能否发布已知地点的示例值,以便我们了解它是什么格式?以上是关于Orchid Tracking 软件 - 如何将十进制值转换为 GPS 度/分/秒的主要内容,如果未能解决你的问题,请参考以下文章