Lat Long di minuti e secondi?
-
20-09-2019 - |
Domanda
Google Maps mi dà la Lunga Lat e di una posizione in notazione decimale in questo modo:
38.203655, -76,113281
Come faccio a convertire quelli per Coords (gradi, minuti, secondi)
Soluzione
38.203655 è un valore decimale di gradi. Ci sono 60 minuti è un grado e 60 secondi in un minuto (1degree == == 60min 3600s).
Quindi prendere la parte frazionaria del valore, cioè 0.203655, e moltiplicarlo con il 60 per ottenere minuti, vale a dire 12,2193, che è di 12 minuti, e poi ripetere per la parte frazionaria di minuti, vale a dire 0.2193 = 13,158 mila secondo.
Esempio in 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)
Altri suggerimenti
Nel caso in cui avete bisogno di altre funzionalità di geo-correlata in JavaScript, è possibile utilizzare il seguente libreria
http://www.movable-type.co.uk/scripts/ latlong.html
fornisce le seguenti funzionalità:
- DMS da / per latitudine decimale / conversioni longitudine
- calcoli Distanza
- Calcolo Cuscinetto
- punto Intersezione calcualtion
libreria Python che fa il trucco:
Credo che questo vi aiuterà con la soluzione:
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)