diff --git a/tsg_util/dd2dm.m b/tsg_util/dd2dm.m new file mode 100644 index 0000000000000000000000000000000000000000..8ea98c146f65b432ca94d391e2c296d5a298d693 --- /dev/null +++ b/tsg_util/dd2dm.m @@ -0,0 +1,51 @@ +function string = dd2dm( posit, latlon ) +% STRING = DD2DM( posit, latlon ) +% Convertit une position decimale en chaine de caractere +% +% string chaine de caracteres + +% posit en degres decimaux +% latlon 0 pour la latitude - 1 pour la longitude +% +% $Id: dd2dm.m 297 2007-07-17 13:56:00Z jgrelet $ + + +% representation ASCII du caractere degre +% pour assurer la comptatibilite windows/linux (ISO8859/UTF8) +degre = 176; + +% Determine si latitude ou longitude +% ---------------------------------- +if latlon == 1 + neg = 'W'; + pos = 'E'; +else + neg = 'S'; + pos = 'N'; +end + +% Cree les labels +% --------------- +if posit < 0 + geo = neg; +else + geo = pos; +end + +% Conversion et formattage +% on n'affiche pas les decimales pour les minutes +% car la precision n'est pas suffisante (currentpoint) +% --------------------------------------------- +% posit +h = fix( posit ); +m = (posit - h ) * 60; +if abs(m) > 59 + if posit > 0 + h = h+1; + else + h = h-1; + end + m = 0; +end +string = sprintf( '%02d%c%06.3f %c', abs(h), degre, abs(m), geo ); +