Неправильный формат координат (wgs84) или я что-то упустил?

Тупой вопрос здесь. Я разрабатываю приложение, которое получает информацию о местоположении. Я получаю координаты местоположения следующим образом: lat=+aaa.bb.cc.dd&lon=+aaa.bb.cc.dd&datum=wgs84

Как преобразовать эти координаты в стандартную широту и долготу с одной точкой. Теперь это выглядит так, как будто клиент запрашивает поиск IP-адреса.


person Eimantas    schedule 26.01.2010    source источник


Ответы (2)


wgs84 = '123.12.34.56'
deg, minute, second, fraction = wgs84.split(/\./).map(&:to_i)      # Ruby 1.9
deg, minute, second, fraction = wgs84.split(/\./).map {|x| x.to_i} # Ruby 1.8
deg += minute / 60.0 + second / 3600.0 + fraction / 360000.0
puts deg    # => 123.20970370370371

Берет строку с координатой wgs84, разбивает ее на периоды, преобразует результаты из текстового '34' в числовое 34, а затем выполняет деление, необходимое для преобразования минут, секунд и долей секунд в корректировки с плавающей запятой, добавленные в широта (или долгота).

person Myrddin Emrys    schedule 26.01.2010
comment
Просто придирка, но разве 123.12.34.56 не означает 123d12m34.56s? Где часы появляются в координатах WGS? Разве не правильное решение 123+12/60+34,56/3600? - person High Performance Mark; 26.01.2010
comment
Вполне может быть... честно говоря, я не знаком с WGS... посмотрев в Интернете, кажется, вы правы. Исправляем математику. - person Myrddin Emrys; 26.01.2010

Воодушевленный тем, что @Myrddin почти согласен с тем, что он допустил небольшую ошибку, я публикую ответ в явной попытке собрать репутацию.

я подозреваю, что

123.12.34.56

следует интерпретировать как 123d12m34.56s и преобразовать в десятичные градусы следующим образом:

123+12/60+34.56/3600
person High Performance Mark    schedule 26.01.2010