Comment calculer à partir de ces chiffres:Comment transformer la latitude et la longitude?
51.501690392607,-0.1263427734375
à la latitude et la longitude?
Il devrait être
London, England 51° 32' N 0° 5' W
Comment calculer à partir de ces chiffres:Comment transformer la latitude et la longitude?
51.501690392607,-0.1263427734375
à la latitude et la longitude?
Il devrait être
London, England 51° 32' N 0° 5' W
http://geography.about.com/library/howto/htdegrees.htm
Cela semble fonctionner.
Pour convertir le 51.501690392607, prenez d'abord la partie entière sur 51 degrés. Les valeurs positives sont nord; Les négatifs sont au sud.
Ensuite, prenez la partie fractionnaire: ,501690392607
Multiplier par 60: 60 * ,501690392607 = 30,10142355642
Prenez la partie entière pendant 30 minutes.
Ensuite, prenez la partie fractionnaire: ,10142355642
Multiplier par 60: 6,0854133852
ronde au plus proche 1 pour les secondes.
Vous sortez avec: 51 degrés Nord 30 minutes 6 secondes. Pour la direction Est/Ouest, répétez avec Est positif et Ouest négatif.
Pour trouver la ville, vous devrez utiliser une base de données ou quelque chose ...
Je ne sais pas pourquoi votre conversion ne semble pas correspondre.
La conversion de base entre les deux représentation peut se faire comme ceci:
// to decimal
decimal = degree + minutes/60 + seconds/3600;
// from decimal
degree = int(decimal)
remaining = decimal - degree
minutes = int(remaining*60)
remaining = remaining - minutes/60
seconds = remaining*3600
Pour convertir un nombre fractionnaire de degrés en degrés et minutes, en pseudocode:
degrees = int(frac)
minutes = int((frac - degrees) * 60)
pour convertir « négatif "numéros dans" S "et" W "(vs" N "et" E ") respectivement, utilisez" si ".
Juste pour rendre le fichier exécutable de pseudo-code, nous pourrions utiliser Python ...:
def translate(frac, islatitude):
if islatitude: decorate = "NS"
else: decorate = "EW"
if frac < 0:
dec = decorate[1]
frac = abs(frac)
else:
dec = decorate[0]
degrees = int(frac)
minutes = int((frac - degrees) * 60)
return "%d %d %s" % (degrees, minutes, dec)
Ainsi, par exemple:
print translate(51.501690392607, True),
print translate(-0.126342773437, False)
émettraient
51 30 N 0 7 W
La décoration (degrés et minutes) dépend de la prise en charge du jeu de caractères de votre périphérique de sortie - et des 7 à 5 minutes d'arc pour le W coor Dinate semble être le bon résultat pour les nombres d'entrée que vous donnez.
Dans quelle plateforme/environnement travaillez-vous? –
@mmsmatt: est-ce important?Cela ressemble plus à une question d'algorithme/formule mathématique. Comment pouvez-vous passer des coordonnées décimales aux heures-minutes-secondes N/S et E/W notation. –
@GregS: À droite, la conversion décimale -> hms est une question de formule. Mais ajouter un nom de ville ressemble à quelque chose d'autre. –