Подтвердить что ты не робот

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

Ищете утилиту java. Еще лучше, если вы можете сказать мне, как это сделать, используя библиотеку geotools.

4b9b3361

Ответ 1

Под "десятичными координатами" вы подразумеваете широту и долготу (также известную как десятичная степень)? Если это так, то, что вы пытаетесь сделать, довольно просто:

Учитывая координаты DMS (градусы, минуты, секунды), такие как W87 ° 43'41 ", это тривиально, чтобы преобразовать его в несколько десятичных степеней, используя следующий метод:      Вычислите общее количество секунд, 43′41″ = (43*60 + 41) = 2621 секунд. Дробная часть - это общее количество секунд, разделенных по 3600. 2621/3600 = ~ 0.728056 Добавить дробные степени в целое градусов для получения конечного результата: 87 + 0.728056 = 87.728056

Поскольку это координата западной долготы, отрицайте результат.         Конечный результат: -87.728056.

Из Wikipedia. Здесь виджет Javascript, который делает то же самое.

Ответ 2

Это зависит от вашего исходного формата. Если он уже разбит на градусы (d), минуты (m) и секунды (секунды), ваш алгоритм:

(предполагая, что d может быть положительным или отрицательным)

dd = Math.signum(d) * (Math.abs(d) + (m / 60.0) + (s / 3600.0));

Если он перемещается в строку, обычный формат:

"ddd.mmss"

Итак, проанализируем использование регулярного выражения или String.substring(), чтобы получить m и s.

Преобразование назад:

d = (int)dd;  // Truncate the decimals
t1 = (dd - d) * 60;
m = (int)t1;
s = (t1 - m) * 60;

Ответ 3

**begin  23°26’49"**
degrees = 23
minutes = 26
seconds = 49
decimal = ((minutes * 60)+seconds) / (60*60))
answer = degrees + decimal
**finish  23.44694444**