将GPS度数分钟转换为十进制度

时间:2013-04-01 21:24:05

标签: vb.net gps coordinates degrees

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

1 个答案:

答案 0 :(得分:1)

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

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

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