2010-01-13 9 views
8

Google Maps gibt mir die Breite und Länge eines Ortes in Dezimalschreibweise wie folgt aus:Lat lang zu Minuten und Sekunden?

38,203655, -76,113281

Wie kann ich diejenigen zu Coords konvertieren (Grad, Minuten, Sekunden)

+0

[Dezimalgrad in Grad Minuten Sekunden] (http: // www.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html) –

+0

Koordinatensysteme und Umrechnungen werden hier mit Pseudocode:erläutert 0 –

Antwort

16

38,203655 ist ein Dezimalwert von Grad. Es gibt 60 Minuten ist ein Grad und 60 Sekunden in einer Minute (1 Grad == 60min == 3600s). Man nehme den Bruchteil des Wertes, d. H. 0,203655, und multipliziere ihn mit 60, um Minuten zu erhalten, d. H. 12,2193, was 12 Minuten ist, und wiederhole dann den Bruchteil der Minuten, d.h. 0,2193 = 13,158000 Sekunden.

Beispiel 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

Gute Lösung. Kleinere Anmerkung: In der Regel für das DMS-Format ist es nicht signiert, sondern verwendet die Kardinalrichtung (dh nicht -76 12 34.567, sondern W76 12 34.567). – TreyA

0

Falls Sie andere geo-bezogene Funktionalität in JavaScript benötigen, können Sie die folgende Bibliothek verwenden

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

es bietet die folgenden Funktionen:

  • DMS von/zu Dezimal-Breiten-/Längengrad-Konvertierungen
  • Entfernung Berechnungen
  • Lagerberechnung
  • Schnittpunkt calcualtion