Degrés décimaux en Degrés, Minutes Et Secondes en Javascript
Im essayant d'écrire une fonction qui prend ma degrés décimaux (lat) et les convertit en DMS degrés minutes secondes. Je sais que je suis censée à la fois le point décimal numéro 60, puis il est décimal à nouveau. Mais je suis un noob. Aurais-je diviser le nombre?
function ConvertDDToDMS(DD) {
eg. DD =-42.4
D= 42;
M= 4*60;
S= .M * 60;
var DMS =
return DMS //append Direction (N, S, E, W);
}
Suis-je sur la bonne voie?
Devoir à la maison? Astuce: utilisez les Mathématiques.étage
La accepté de répondre à Javascript de la mise en œuvre ne fonctionne pas pour les valeurs négatives
La accepté de répondre à Javascript de la mise en œuvre ne fonctionne pas pour les valeurs négatives
OriginalL'auteur Christopher | 2011-04-26
Vous devez vous connecter pour publier un commentaire.
Mise à jour: j'enlève la partie qui n'a pas de sens (grâce cwolves!).
Ici, vous avez encore une autre mise en œuvre. Il n'est pas aussi courte, ni efficace que les précédents, mais j'espère que beaucoup plus facile à comprendre.
Pour y arriver, vous devez d'abord comprendre comment les calculs sont faits, et seulement ensuite tenter de les mettre en œuvre. Pour cela, pseudocode est une excellente option, car vous écrivez les étapes de plaine de l'anglais ou d'une syntaxe simplifiée qui est facile à comprendre, puis de le traduire sur le langage de programmation de choix.
J'espère que c'est utile!
N
&E
avec juste un numéro.Merci pour le commentaire. En lisant un peu plus, il n'a pas de sens... je dois lire mes propres suggestions certain temps: "comprendre comment les calculs sont faits, et seulement ensuite tenter de les mettre en œuvre" :/
il y a une erreur: que si, en raison de l'arrondi et de votre d++ degrés dépasser les 180 degrés de longitude de la limite?, que faire si il dépasse les 90 ° de latitude limite?
Le Javascript de la mise en œuvre ne fonctionne pas pour les valeurs négatives de deg
Ce n'est pas juste qu'il ne fonctionne pas pour les valeurs négatives, il donne la bonne valeur.
OriginalL'auteur Aleadam
Ci-dessus vous donne un objet
{deg:, min:, sec:, dir:}
auprès de la sec tronqués à deux chiffres (par exemple,3.14
) et le dir d'être l'un desN
,E
,S
,W
selon que vous définissez lalng
(longitude) paramètre à true. par exemple:Ou si vous voulez simplement la chaîne de base:
Vous pourriez peut-être passer un tableau de ['N', 'S'] ou ['E','W'] ou [",'-'] pour le rendre un peu plus facile/plus générique à la place d'un vrai/faux???
Vous ne devriez pas besoin de passer ceux-ci. C'est assez ancien code, mais je venais de faire:
ConvertLatToDMS = (d) => ConvertDDToDMS(d, false)
etConvertLngToDMS = (d) => ConvertDDToDMS(d, true)
OriginalL'auteur Mark Kahn
Il n'est pas clair comment vous avez besoin de la sortie. Voici une version qui renvoie tous les 3 valeurs comme une chaîne de caractères:
parseInt(dd)
serait un peu plus clair quedd | 0
.Note mineure, ce sera le retour de 60 secondes dans les cas limites comme 46.99992 (qui devrait être 47 0' 0"). Ajout d'une vérification similaire à Aleadam réponse comptabilité pour les négatifs et les lat/lon limites) résout ce problème.
OriginalL'auteur Gabe
Basée sur la réponse ci-dessus, j'ai écrit en javascript et php style.
JS-
PHP-
OriginalL'auteur Ralph
D'ENTRÉE : 22.4229541515 DE SORTIE: 22:25:22.63
OriginalL'auteur Rohit Sukumar
juste pour la remarque, la réponse
}
ne pas de travail pour les angles entre -1° et 0°.
La malchance!
hc
OriginalL'auteur archi pelago