Vous cherchez un outil pour convertir DD en DMS?

9

Je recherche soit un outil en ligne soit un outil que je peux télécharger pour convertir DD en DMS.

Par exemple, je souhaite convertir à partir de:

41.590833, -93.620833 à 41 ° 35 ′ 27 ″ N, 93 ° 37 ′ 15 ″ O ... Ce sont les coordonnées, selon un Geohack , pour Des Moines.

Shaun Rollins
la source
WGS84 est déjà en lat / long.
underdark
vous souhaitez convertir de DD en DMS. Vous pouvez soumettre à nouveau une autre question en posant cette question.
artwork21
2
utiliserez-vous une certaine solution SIG? Si oui, en fournissant ces informations, vous obtiendrez de meilleures réponses de la part de la communauté.
artwork21

Réponses:

13

Parce que même le code Microsoft est bogué, il peut être utile de fournir un pseudocode correct pour la conversion.

Pour convertir des degrés décimaux x à des degrés ( d ), minutes ( m ) et (décimal) secondes ( s ), procédez comme suit:

Declare d, m as integer, s as float
If x < 0, then sign = -1 else sign = +1
Let y = Abs(x)          ' Work with positive values only.
Let d = Int(y)          ' Whole degrees.  Floor() is ok too.
Let z = 60*(y - d)      ' The fractional degrees, converted to minutes.
Let m = Int(z)          ' Whole minutes.
Let s = 60*(z - m)      ' The fractional minutes, converted to seconds.
Assert sign*(((s/60) + m)/60 + d) == x ' This confirms a correct result.
Return (sign*d, m, s)

Au lieu de renvoyer un diplôme signé, vous pouvez indiquer N / S ou E / W à la fin:

If x is a latitude, then
   If sign == -1 then hemisphere = "S" else hemisphere = "N"
Else {x is a longitude}
   If sign == -1 then hemisphere = "W" else hemisphere = "E"
End if
Return (d, m, s, hemisphere)

Si vous le souhaitez, vous pouvez arrondir s à un entier et formater les résultats pour qu'ils correspondent au formulaire donné dans la question.

whuber
la source
J'invite le downvoter anonyme à améliorer cette réponse ;-). (Je crois qu'il a le représentant pour le faire.)
whuber
5

Ce n'est pas très compliqué à faire, mais j'ai tendance à utiliser cette page Web . Mais travaillons à travers la latitude dans votre exemple. Les degrés décimaux sont les mêmes, dans ce cas 41. Maintenant, prenez le reste et multipliez par 60. Cela vous donne 35,44998. La partie entière est les secondes (35 '). Maintenant, prenez le reste et multipliez à nouveau par 60. Vous obtenez les secondes (26.9998), qui se comparent positivement avec vos résultats ci-dessus.

Jose
la source
4

La calculatrice Windows en mode scientifique fait l'affaire pour moi.

Le bouton "dms" vous fait passer des degrés décimaux aux degrés, minutes, secondes.

Inv + dms (maintenant affiché comme deg) va dans l'autre sens.

Corbeau
la source
3

Cela peut vous aider. Essayez. http://transition.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html

user3063
la source
+1 Belle trouvaille. Je remarque que cette applet nécessite des longitudes dans la plage [-180, +180]. Le code source apparaît près du bas de la source de la page.
whuber