summaryrefslogtreecommitdiff
path: root/navit/projection.c
diff options
context:
space:
mode:
authorsleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-10-11 23:13:12 +0000
committersleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-10-11 23:13:12 +0000
commit8cfae89dfcbc3b294626e573fe93032106364666 (patch)
tree4e13515c785871d2eefbc540afa4c3de796b142e /navit/projection.c
parent644a2398e5489d34099fa63d621617db89c4ef9c (diff)
downloadnavit-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.c21
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;
}
}