Преобразование значений широты / долготы (DMS + формат направления компаса) в соответствующие значения десятичной точки в Android - PullRequest
3 голосов
/ 04 августа 2011

Я работаю над проектом Java android и имею следующую проблему. Я много искал, но все же у меня проблема с преобразованием значений широты / долготы в формате DMS (например, 38 ° 2'56''N, 122 ° 9'28''W) в соответствующий формат десятичных градусов.

Пример значений, которые необходимо преобразовать в соответствующий формат десятичных градусов.

38 ° 49'59''N, 26 ° 56'59''E

38 ° 2'56''N, 122 ° 9'28''W

34 ° 52'58''S, 56 ° 10'58''W

Спасибо

Ответы [ 3 ]

8 голосов
/ 04 августа 2011

Все, что вы делаете, когда переводите DMS в десятичные градусы, делите на 60. Разделите S на 60, добавьте его в M, разделите результат на 60, затем добавьте в D.часть имеет дело с направлением, которое указывают координаты.Изобразите пару осей с указанием компаса в правильных местах (т. Е. Вверх - N, справа - E, вниз - S, слева - W).Это означает, что любое десятичное значение в градусах, соответствующее значению DMS, которое указывало бы либо на S, либо на W, будет отрицательным. -> 38,048889, -122,157778

3 голосов
/ 04 августа 2011

D ° M'S ''

  1. Разделите S на 60 и получите X
  2. Найдите Y, добавив X к M
  3. Разделите Y на 60, чтобы получить F
  4. Ответ = D + F

РЕЗЮМЕ

ДЛЯ ПРЕОБРАЗОВАНИЯ ОТ DMS В СТЕПЕНЬ

градусов = D + ((S / 60) + M) / 60

Где D и M и S - значения, составляющие формат DMS: D ° M'S ''

1 голос
/ 04 августа 2011

И вы всегда можете проверить свою работу по формуле Шерифа здесь: http://transition.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html

...