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)

War es hilfreich?

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:

https://pypi.python.org/pypi/latlon/1.0.2

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top