Преобразовать GPS градусы, минуты, секунды в десятичные градусы

У меня есть формула, которую я использую для вычисления десятичных градусов по координатам 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 (отрицательное значение для запада) Результаты очень близки, но не совсем точны. Я считаю, что они всего лишь немного северо-западнее того места, где они на самом деле должны упасть. Я искал и просматривал множество различных формул, но из того, что я читал, я думаю, что моя должна быть правильной. Заранее спасибо за помощь.


person jay    schedule 01.04.2013    source источник
comment
См. это.   -  person 500 - Internal Server Error    schedule 02.04.2013
comment
Там нет формулы, которая использует esri sdk и создает DDCoordinate из строки DMS. Я считаю, что должен быть способ преобразовать это, а не включать дополнительный SDK.   -  person jay    schedule 02.04.2013
comment
В разделе «Пример» приведена дополнительная информация, которая соответствует приведенному выше коду: ссылка   -  person jay    schedule 02.04.2013
comment
Оказывается, на основе калькулятора здесь мои результаты могут на самом деле быть правильным. Возможно проблема в GPS.   -  person jay    schedule 02.04.2013


Ответы (1)


Ваша формула выглядит неправильно, часть с секундами! он пытается преобразовать DMS в градусы. Но ваши координаты указаны в нотации DM (градусы + десятичные минуты)

поэтому вам нужно преобразование DM в DEG.
08735.5417,з.д. = 87град 35,5147 минут з.д.

просто сделайте 87 + 35,5147/60, затем умножьте на -1

person AlexWien    schedule 11.04.2013
comment
Спасибо! После нескольких дней изучения вопроса я пришел к такому же выводу. Это решило мою проблему - person jay; 12.04.2013