Lat lang bis Minuten und Sekunden?
-
20-09-2019 - |
Frage
Google Maps gibt mir den Lat und einen langen Standort in einer solchen Dezimalnotation:
38.203655,-76.113281
Wie konvertiere ich diese in Koordinaten (Grad, Minuten, Sekunden)
Lösung
38.203655 ist ein Dezimalwert von Grad. Es gibt 60 Minuten und 60 Sekunden in einer Minute (1 Grad == 60 min == 3600S).
Nehmen Sie also den fraktionalen Teil des Wertes, dh 0,203655, und multiplizieren Sie ihn mit 60, um Minuten zu erhalten, dh 12,2193, 12 Minuten, und wiederholen Sie dann für den fraktionalen Teil von Minuten, dh 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)
Andere Tipps
Wenn Sie andere geobezogene Funktionen in JavaScript benötigen, können Sie die folgende Bibliothek verwenden
http://www.movable-type.co.uk/scripts/latlong.html
Es bietet die folgende Funktionalität:
- DMs von/bis zu Dezimalgebaten/Längengradumwandlungen
- Entfernungsberechnungen
- Lagerberechnung
- Schnittpunktkalcuation
Python -Bibliothek, die den Trick macht:
Ich denke, das wird Ihnen bei der Lösung helfen:
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)