gis - 从度数到小数和逆公式的计算
问题描述
将度数转换为小数的公式为:
Decimal= SIGN* Degrees+(Dec. Degrees)/60
如果 SIGN=South 或 West,则 SIGN=-1
但是如果我有 Decimal 值,我怎么能得到 SIGN、Degrees 和 Dec. Degrees 值?
例如,如果 Decimal = 50 和 Dec. Degrees = 90,我得到结果 51.5
51.5 = 50 + 90/60
但试图计算逆我得到了公式:
51.5 = X1+ X2/60
无法理解如何获得 2 个变量 X1 和 X2 ?
谢谢!
解决方案
我假设您想从Decimal Degrees
(DD) 转换为Degrees,Minutes,Seconds
(DMS),反之亦然。
// Decimal Degrees to Degrees,Minutes,Seconds
D = floor(DD);
M = floor((DD - D) * 60);
S = round((DD - D - M/60) * 3600);
// Degrees,Minutes,Seconds to Decimal Degrees
DD = D + M/60 + S/3600;
// calculations for your case above
DD = 51.5
D = floor(51.5) => D = 51
M = floor((51.5 - 51) * 60) => M = floor(0.5 * 60) => M = 30
S = round((51.5 - 51 - 30/60) * 3600) => S = 0
// so 51.5 DD = 51° 30' 0'' DMS
如果您还想将小数部分保留几秒钟(例如32.15
,而不是32
),您只需删除round
呼叫。
编辑:
关于90 分钟以上的值实际上是1 度和 30 分钟。
您可以在此页面上自己测试计算
推荐阅读
- java - java.net.Proxy 使用 HTTPS 方案
- eclipse - 在 maven-plugin 开发中使用 eclipse 插件项目
- javascript - 旧代码中的 Typescript 3.5.1“不兼容类型”错误?
- visual-studio-code - 如何在 vscodemarketplace 中更新 Readme.md vscode 扩展?
- c# - 由于 chrome 浏览器版本更新,元素不可交互问题(会话信息:chrome=74.0.3729.157)(驱动程序信息:chromedriver=74.0.3729.6)
- r - R按组进行无监督聚类(?)
- azure-data-factory - 来自 Azure 数据工厂的 REST API 调用
- swift - UISearchBar 不在 TableView 中查找信息
- android - 应用程序不显示数据并在几秒钟后崩溃
- python - 有人可以解释为什么在使用 openpyxl 2.6.2 时会发生这种情况吗?