Formato de coordenadas errado (WGS84) ou estou perdendo alguma coisa?
Pergunta
Pergunta fictícia aqui. Estou desenvolvendo um aplicativo que busca informações sobre reconhecimento de localização. Estou obtendo coordenadas de localização da seguinte maneira: lat =+aaa.bb.cc.dd & lon =+aaa.bb.cc.dd & datum = wgs84
Como converto essas coordenadas em longitude padrão de latitude com ponto único. Agora parece que o cliente está solicitando uma pesquisa de endereço IP.
Solução
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
Leva a string com a coordenada WGS84, divide -a nos períodos, converte os resultados do texto '34'
para numérico 34
, e, em seguida, a divisão necessária para converter as atas, segundos e frações de segundos para ajustes de ponto flutuante adicionados à latitude (ou longitude).
Outras dicas
Incluído por @Myrddin's Near, que ele cometeu um pequeno erro, estou postando uma resposta em uma tentativa flagrante de reunir representante.
Eu suspeito disso
123.12.34.56
deve ser interpretado como 123d12m34.56s e convertido em graus decimais como este:
123+12/60+34.56/3600