Tu fais bien de demander, ce n'est pas float() mais abs() ... je n'en étais qu'à mon premier café.
1 2 3 4 5 6
|
def dms_to_decimal(degrees, minutes, seconds):
"""Convert degrees, minutes, seconds into decimal degrees."""
return ((-1 if degrees < 0) else 1) * (abs(degrees) +
minutes / 60.0 +
seconds / 3600.0) |
En fait si les degrés sont négatifs c'est qu'ils sont comptés vers l'ouest pour la longitude ( 0, -179) ou vers le sud pour la latitude (0, -89) or en ajoutant des minutes et secondes à une valeur négative on ramène la valeur vers 0, ce qui est faux.
Autrement dit, -20° + 30m + 15s nous remonte vers l'équateur de 30m15s, il faut donc faire (20° + 30m + 15s) * -1
Suis-je clair ?
Partager