From: Alexander A. <za...@us...> - 2007-10-30 11:31:16
|
Update of /cvsroot/navit/navit/src In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv19175 Modified Files: transform.c Log Message: Use multiplication when transforming garmin coordinates Index: transform.c =================================================================== RCS file: /cvsroot/navit/navit/src/transform.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** transform.c 28 Oct 2007 11:00:55 -0000 1.6 --- transform.c 30 Oct 2007 11:31:15 -0000 1.7 *************** *** 32,40 **** } void transform_to_geo(enum projection pro, struct coord *c, struct coord_geo *g) { - double f; - switch (pro) { case projection_mg: --- 32,41 ---- } + static const double gar2geo_units = 360.0/(1<<24); + static const double geo2gar_units = 1/(360.0/(1<<24)); + void transform_to_geo(enum projection pro, struct coord *c, struct coord_geo *g) { switch (pro) { case projection_mg: *************** *** 43,49 **** break; case projection_garmin: ! f=360.0/(1<<24); ! g->lng=c->x*f; ! g->lat=c->y*f; break; default: --- 44,49 ---- break; case projection_garmin: ! g->lng=c->x*gar2geo_units; ! g->lat=c->y*gar2geo_units; break; default: *************** *** 55,60 **** transform_from_geo(enum projection pro, struct coord_geo *g, struct coord *c) { - double f; - switch (pro) { case projection_mg: --- 55,58 ---- *************** *** 63,69 **** break; case projection_garmin: ! f=360.0/(1<<24); ! c->x=g->lng/f; ! c->y=g->lat/f; break; default: --- 61,66 ---- break; case projection_garmin: ! c->x=g->lng*geo2gar_units; ! c->y=g->lat*geo2gar_units; break; default: |