diff options
author | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2014-10-11 23:13:12 +0000 |
---|---|---|
committer | sleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2014-10-11 23:13:12 +0000 |
commit | 8cfae89dfcbc3b294626e573fe93032106364666 (patch) | |
tree | 4e13515c785871d2eefbc540afa4c3de796b142e /navit/projection.c | |
parent | 644a2398e5489d34099fa63d621617db89c4ef9c (diff) | |
download | navit-svn-8cfae89dfcbc3b294626e573fe93032106364666.tar.gz |
Refactor:core:Improve docs for projection_from_name
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5907 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/projection.c')
-rw-r--r-- | navit/projection.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/navit/projection.c b/navit/projection.c index 7f20b9f2..836b7ca4 100644 --- a/navit/projection.c +++ b/navit/projection.c @@ -51,8 +51,15 @@ utmref_letter(char l) return -1; } +/** + * Look up a projection by name. + * + * @param name name of projection to look up (values from projection_names, and UTM projections) + * @utm_offset Only for UTM projections: Used to return the offset for the UTM projection + * @returns projection, or projection_none if no projection could be determined + */ enum projection -projection_from_name(const char *name, struct coord *offset) +projection_from_name(const char *name, struct coord *utm_offset) { int i; int zone,baserow; @@ -62,10 +69,10 @@ projection_from_name(const char *name, struct coord *offset) if (! strcmp(projection_names[i].name, name)) return projection_names[i].projection; } - if (offset) { + if (utm_offset) { if (sscanf(name,"utm%d%c",&zone,&ns) == 2 && zone > 0 && zone <= 60 && (ns == 'n' || ns == 's')) { - offset->x=zone*1000000; - offset->y=(ns == 's' ? -10000000:0); + utm_offset->x=zone*1000000; + utm_offset->y=(ns == 's' ? -10000000:0); return projection_utm; } if (sscanf(name,"utmref%d%c%c%c",&zone,&zone_field,&square_x,&square_y)) { @@ -77,16 +84,16 @@ projection_from_name(const char *name, struct coord *offset) i-=12; dbg(1,"zone_field %d\n",i); baserow=i*887.6/100; - offset->x=zone*1000000; + utm_offset->x=zone*1000000; i=utmref_letter(square_x); - offset->x+=((i%8)+1)*100000; + utm_offset->x+=((i%8)+1)*100000; i=utmref_letter(square_y); dbg(1,"baserow %d\n",baserow); if (!(zone % 2)) i-=5; dbg(1,"i=%d\n",i); i=(i-baserow+100)%20+baserow; - offset->y=i*100000; + utm_offset->y=i*100000; return projection_utm; } } |