]> git.street.me.uk Git - andy/viking.git/blame - src/degrees_converters.c
refactor dms conversions
[andy/viking.git] / src / degrees_converters.c
CommitLineData
9d3e06a4
GB
1#include <math.h>
2#include <glib.h>
3
4#include <stdio.h>
5
f88152fe
GB
6/**
7 * @param pos_c char for positive value
8 * @param neg_c char for negative value
9 */
10static gchar *convert_dec_to_dms(gdouble dec, gchar pos_c, gchar neg_c)
9d3e06a4
GB
11{
12 gdouble tmp;
f88152fe
GB
13 gchar sign_c = ' ';
14 gint val_d, val_m;
15 gdouble val_s;
9d3e06a4
GB
16 gchar *result = NULL;
17
18 /* North ? South ? */
f88152fe
GB
19 if ( dec > 0 )
20 sign_c = pos_c;
21 else if ( dec < 0 )
22 sign_c = neg_c;
23 else /* Nul value */
24 sign_c = ' ';
9d3e06a4
GB
25
26 /* Degree */
f88152fe
GB
27 tmp = fabs(dec);
28 val_d = (gint)tmp;
9d3e06a4
GB
29
30 /* Minutes */
f88152fe
GB
31 tmp = (tmp - val_d) * 60;
32 val_m = (gint)tmp;
9d3e06a4
GB
33
34 /* Minutes */
f88152fe 35 val_s = (tmp - val_m) * 60;
9d3e06a4
GB
36
37 /* Format */
f88152fe
GB
38