2010-01-13 14 views
8

Google Maps mi dà la Lunga Lat e di una posizione in notazione decimale in questo modo:Lat Long to Minutes and Seconds?

38,203655, -76,113281

Come faccio a convertire quelli per Coords (gradi, minuti, secondi)

+0

[gradi decimali per Gradi Minuti Secondi] (http: // www.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html) –

+0

I sistemi di coordinate e le conversioni sono spiegate qui, con pseudocodice: Co-ordinate conversion (from Wikipedia)

risposta

16

38,203,655 mila è un valore decimale di gradi. Ci sono 60 minuti è un grado e 60 secondi in un minuto (1 grado == 60 minuti == 3600).

Quindi prendi la parte frazionaria del valore, cioè 0.203655, e moltiplicala con 60 per ottenere minuti, cioè 12.2193, che è di 12 minuti, e quindi ripeti per la parte frazionaria dei minuti, cioè 0.2193 = 13.158000 secondi.

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) 
+1

Buona soluzione. Nota secondaria: tipicamente per il formato DMS, non è firmato ma utilizza la direzione cardinale (cioè non -76 12 34.567 ma W76 12 34.567). – TreyA

0

Nel caso abbiate 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/a conversioni decimali di latitudine/longitudine
  • calcoli Distanza
  • calcolo cuscinetto
  • Punto di intersezione calcualtion
Problemi correlati