2010-01-13 4 views
8

Google Maps me donne la Lat et Long d'un emplacement en notation décimale comme ceci:Lat Long à minutes et secondes?

38,203655, -76,113281

Comment convertir ceux Coords (degrés, minutes, secondes)

+0

[degrés décimaux Degrés Minutes Secondes] (http: // www.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html) –

+0

Les systèmes de coordonnées et les conversions sont expliquées ici, avec pseudocode: Co-ordinate conversion (from Wikipedia)

Répondre

16

38,203655 est une valeur décimale de degrés. Il y a 60 minutes est un degré et 60 secondes dans une minute (1degree == 60min == 3600s). Prenez donc la partie fractionnaire de la valeur, c'est-à-dire 0,203655, et multipliez-la par 60 pour obtenir les minutes, soit 12,2193, soit 12 minutes, puis répétez pour la partie fractionnaire des minutes, c'est-à-dire 0,2193 = 13,158000 secondes.

Exemple en 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

Bonne solution. Note mineure: typiquement pour le format DMS, elle n'est pas signée mais utilise plutôt la direction cardinale (c.-à-d. Pas -76 12 34.567 mais W76 12 34.567). – TreyA

0

Si vous avez besoin d'autres fonctionnalités liées à la géo-JavaScript, vous pouvez utiliser la bibliothèque suivante

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

il offre les fonctionnalités suivantes:

  • Conversions DMS de/vers la latitude/longitude décimale
  • Les calculs de distance
  • calcul des roulements
  • point d'intersection, calcualtion
Questions connexes