Ищите инструмент для конвертации DD в DMS?

9

Я ищу онлайн-инструмент или инструмент, который я могу скачать, чтобы конвертировать DD в DMS.

Например, я хочу конвертировать из:

41.590833, от -93.620833 до 41 ° 35 ′ 27 ″ с.ш., 93 ° 37 ′ 15 ″ з.д. ... Это координаты, согласно Geohack , для Де-Мойна.

Шон Роллинс
источник
WGS84 уже в лат / лонг.
Подземье
Вы хотите конвертировать из DD в DMS. Вы можете повторно отправить еще один вопрос, задав этот вопрос.
artwork21
2
Вы будете использовать определенное решение ГИС? Если да, то предоставление этой информации может дать вам лучшие ответы от сообщества.
artwork21

Ответы:

13

Поскольку даже код Microsoft содержит ошибки, может быть полезно предоставить правильный псевдокод для преобразования.

Чтобы преобразовать десятичные градусы x в градусы ( d ), минуты ( m ) и (десятичные) секунды ( s ), выполните следующие действия:

Declare d, m as integer, s as float
If x < 0, then sign = -1 else sign = +1
Let y = Abs(x)          ' Work with positive values only.
Let d = Int(y)          ' Whole degrees.  Floor() is ok too.
Let z = 60*(y - d)      ' The fractional degrees, converted to minutes.
Let m = Int(z)          ' Whole minutes.
Let s = 60*(z - m)      ' The fractional minutes, converted to seconds.
Assert sign*(((s/60) + m)/60 + d) == x ' This confirms a correct result.
Return (sign*d, m, s)

Вместо того, чтобы возвращать подписанную степень, вы можете указать N / S или E / W в конце:

If x is a latitude, then
   If sign == -1 then hemisphere = "S" else hemisphere = "N"
Else {x is a longitude}
   If sign == -1 then hemisphere = "W" else hemisphere = "E"
End if
Return (d, m, s, hemisphere)

Если хотите, вы можете округлить s до целого числа и отформатировать результаты в соответствии с формой, указанной в вопросе.

Whuber
источник
Я приглашаю анонимного downvoter улучшить этот ответ ;-). (Я считаю, что у него есть представитель, чтобы сделать это.)
whuber
5

Это не очень сложно сделать, но я, как правило, просто использую эту веб-страницу . Но давайте поработаем с широтой в вашем примере. Десятичные градусы одинаковы, в данном случае 41. Теперь возьмите остаток и умножьте на 60. Это даст вам 35,44998. Целая часть - это секунды (35 '). Теперь возьмите остаток и умножьте на 60 снова. Вы получаете секунды (26.9998), которые положительно сравниваются с вашими выводами выше.

Хосе
источник
4

Windows Calculator в научном режиме помогает мне.

Кнопка «dms» переводит вас из десятичных градусов в градусы, минуты, секунды.

Inv + dms (теперь отображается как deg) идет другим путем.

ворон
источник
3

Это может помочь вам. Просто попробуй. http://transition.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html

user3063
источник
+1 Отличная находка. Я заметил, что этот апплет требует долготы в диапазоне [-180, +180]. Исходный код отображается в нижней части исходного кода страницы.
whuber