我有一个公式,我用来从gps坐标计算十进制度数。
GPS坐标: 3800.5825,N 08735.5417,W
公式:
Private Function DMStoDD(ByVal toConvert As Double, ByVal Dir As String) As Double
Dim DD As Double
Dim deg As Double
Dim min As Double
Dim sec As Double
deg = CDbl(toConvert.ToString.Substring(0, 2))
min = CDbl(toConvert.ToString.Substring(2, 2))
sec = CDbl(toConvert.ToString.Split(".")(1)) * 0.01
DD = deg + (min / 60) + (sec / 3600)
'Negative for West
If Dir = "W" Then DD = DD * -1
Return DD
End Function
返回: 38.0161805555556 -87.5983805555556(西方为负) 结果非常接近,但不太正确。我相信他们只是在他们实际应该下降的西北方向。我搜索并查看了很多不同的公式,但从我读过的内容来看,我认为我的应该是正确的。在此先感谢您的帮助。
答案 0 :(得分:1)
你的公式看起来不对,这个部分有秒!它尝试DMS到Degrees转换。但您的坐标是DM表示法(度数+十进制分钟)
所以你需要DM到DEG的转换。
08735.5417,W = 87deg 35.5147分钟W
只做87 + 35.5147 / 60,然后乘以-1