Lat anhelas minutos y segundos?
-
20-09-2019 - |
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)
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:
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)