Pregunta

Google Maps me da el LAT y una ubicación larga en notación decimal como esta:

38.203655,-76.113281

¿Cómo los convierto los coordes (grados, minutos, segundos)

¿Fue útil?

Solución

38.203655 es un valor decimal de grados. Hay 60 minutos es un grado y 60 segundos en un minuto (1 grado == 60 minutos == 3600).

Entonces, tome la parte fraccional del valor, es decir, 0.203655, y multiplíquela con 60 para obtener minutos, es decir, 12.2193, que es de 12 minutos, y luego repite para la parte fraccional de minutos, es decir, 0.2193 = 13.158000 segundos.

Ejemplo en Python:

def deg_to_dms(deg):
    d = int(deg)
    md = abs(deg - d) * 60
    m = int(md)
    sd = (md - m) * 60
    return [d, m, sd]

print deg_to_dms(38.203655)
print deg_to_dms(-76.113281)

Otros consejos

En caso de que necesite otra funcionalidad geográfica en JavaScript, puede usar la siguiente biblioteca

http://www.movable-type.co.uk/scripts/latlong.html

Proporciona la siguiente funcionalidad:

  • DMS desde/a conversiones decimales de latitud/longitud
  • Cálculos de distancia
  • Cálculo de rodamiento
  • Calcualización del punto de intersección

Biblioteca de Python que hace el truco:

https://pypi.python.org/pypi/latlon/1.0.2

Creo que esto te ayudará con la solución:

def deg_min_sec(self,degrees=0.0):
        if type(degrees) != 'float':
            try:
                degrees = float(degrees)
            except:
                print '\nERROR: Could not convert %s to float.' % (type(degrees))
                return 0
        minutes = degrees % 1.0 * 60
        seconds = minutes % 1.0 * 60

        return (degrees, minutes, seconds)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top