diff options
author | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2009-05-27 13:45:54 +0000 |
---|---|---|
committer | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2009-05-27 13:45:54 +0000 |
commit | 623177e98faf363650a03f34b8c834b1b93d9e8d (patch) | |
tree | 9697447235e4b6552da83f2163b6f0fc1c4e2350 /navit/projection.c | |
parent | bc930f81273a7b0925d07509a5bbe5b2ab577a3d (diff) | |
download | navit-svn-623177e98faf363650a03f34b8c834b1b93d9e8d.tar.gz |
Add:Core:Added support for utm projection
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@2291 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/projection.c')
-rw-r--r-- | navit/projection.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/navit/projection.c b/navit/projection.c index eae465dd..65db1944 100644 --- a/navit/projection.c +++ b/navit/projection.c @@ -33,23 +33,36 @@ struct projection_name projection_names[]={ {projection_none, ""}, {projection_mg, "mg"}, {projection_garmin, "garmin"}, + {projection_utm, "utm"}, + {projection_gk, "gk"}, }; enum projection -projection_from_name(const char *name) +projection_from_name(const char *name, struct coord *offset) { int i; + int zone; + char ns; + dbg(0,"name=%s\n",name); for (i=0 ; i < sizeof(projection_names)/sizeof(struct projection_name) ; i++) { if (! strcmp(projection_names[i].name, name)) return projection_names[i].projection; } + if (offset) { + dbg(0,"%s %d\n",name,sscanf(name,"utm%d%c",&zone,&ns)); + 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); + return projection_utm; + } + } return projection_none; } char * -projection_to_name(enum projection proj) +projection_to_name(enum projection proj, struct coord *offset) { int i; |