Android ExifInterface TAG_GPS_LATITUDE значения деном - PullRequest
0 голосов
/ 16 марта 2012

Я пытаюсь использовать геотегирование в своем приложении камеры.Что я делаю, так это получаю мое текущее географическое местоположение в виде десятичного значения (например, Широта = 6.8447375) и хочу преобразовать его в формат DMS для использования поля public static final String TAG_GPS_LATITUDE в ExifInterface.В соответствии с документацией Android мне нужно указать знаменатели (как в документации denom1, denom2, denom3). Какие правильные значения я должен использовать для этих знаменателей?Есть ли какой-нибудь стандартный метод для вычисления этих знаменателей.Когда я использую denom1 = 1, denom2 = 1 и denom3 = 1000, я получаю другое местоположение рядом с моим фактическим местоположением.Как я могу повысить точность?

1 Ответ

1 голос
/ 28 марта 2012

Предоставляете ли вы правильные значения числителя для этих знаменателей?

num1 / denom1 = градусы

num2 / denom2 = минуты

num3 / denom3 = секунды

Я был свидетелем того, как большинство камер кодируют значения 1,11000 для знаменателей.

Давайте использовать ваше значение выборки и преобразовать его в точные рациональные значения:

6,8447375 градусов

Вот шаги:

1) Возьмите всю часть угла

num1 = 6 / denom1 = 1 -> 6 градусов

2) Умножьте дробную часть на 60, а затем возьмите целую часть: 0,8447375 * 60 = 50,68425

num2 = 50 / denom2 = 1 -> 50 минут

3) Отнимите 6 градусов 50 '(6,833333333) от исходного значения = 0,0114041667, затем умножьте на 3600000 (3600 секунд на градус x 1000)

num3 = 41055 / denom3 = 1000 -> 41,055 секунд

Ваша позиция теперь закодирована как 6 градусов, 50 '41.055 "

...