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.

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top