Ответ 1
Итак, это двухэтапный процесс - благодаря hooked82 answer
шаг 1. Преобразование из DMS в десятичные градусы Из Википедии
>Учитывая координаты DMS (градусы, минуты, секунды), такие как 87 ° 43'41 "W, тривиально преобразовать ее в число десятичных степеней, используя следующие методы:
Общее количество градусов
= 87 Общее количество секунд
= 43'41" = (43 * 60 + 41 * 1) = 2621 секунд. Дробная часть - это общее количество секунд, разделенное на 3600
= 2621/3600 = 0.728056 Добавьте дробные степени ко всем градусам для получения конечного результата
= 87 + 0.728056 = 87.728056. Поскольку это координата западной долготы, отрицайте результат.
= -87.728056.
Ссылка на длинную латиницу:
Lat. North = +
Lat. South = -
Long. East = +
Long. West = -
Шаг 2. Преобразование из десятичных степеней в MicroDegrees (формат E6) Обсуждение SO p >
MicroDegrees (формат E6) = DecimalDegrees * 1e6
--- , как указано в AndroidDevGuide, а также
Таким образом,
float lat = -23.4456f; //in DecimalDegrees
float lng = 45.44334f; //in DecimalDegrees
GeoPoint gp = new GeoPoint((int)(lat * 1E6), (int)(lng * 1E6));