Pregunta

Pregunta ficticia aquí. Estoy desarrollando una aplicación que obtiene información informativa de ubicación. Recibo coordenadas de ubicación de la siguiente manera: LAT =+AAA.BB.CC.DD & LON =+AAA.BB.CC.DD & DATUM = WGS84

¿Cómo convierto esas coordenadas en longitud de latitud estándar con un solo punto? Ahora parece que el Cliente está solicitando una búsqueda de dirección IP.

¿Fue útil?

Solución

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

Toma la cadena con la coordenada WGS84 en ella, la divide en los períodos, convierte los resultados del texto '34' a numérico 34, y luego hace la división necesaria para convertir los minutos, segundos y fracciones de segundos a ajustes de punto flotante agregados a la latitud (o longitud).

Otros consejos

Envalentonado por el casi acelerador de @Myrddin que cometió un pequeño error, estoy publicando una respuesta en un intento descarado de reunir representantes.

Sospecho que

123.12.34.56

debe interpretarse como 123d12m34.56s y convertirse en grados decimales como este:

123+12/60+34.56/3600
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top