0

我有一个公式,用于从 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(西部为负) 结果非常接近,但不太正确。我相信他们只是在他们实际应该下降的地方的西北一点点。我已经搜索并查看了很多不同的公式,但从我读过的内容来看,我认为我的应该是正确的。在此先感谢您的帮助。

4

1 回答 1

1

你的公式看起来不对,秒的部分!它尝试将 DMS 转换为度数。但是您的坐标采用 DM 表示法(度数 + 十进制分钟)

所以你需要一个DM到DEG的转换。
08735.5417,W = 87 度 35.5147 分钟 W

只需做 87 + 35.5147/60,然后乘以 -1

于 2013-04-11T23:54:05.217 回答