aboutsummaryrefslogtreecommitdiff
path: root/src/pj_init.c
diff options
context:
space:
mode:
authorFrank Warmerdam <warmerdam@pobox.com>2011-05-10 17:06:33 +0000
committerFrank Warmerdam <warmerdam@pobox.com>2011-05-10 17:06:33 +0000
commit67dc958368833fa125415a5e1f64ad33759fbf9e (patch)
tree64744338fad10332a7109ae8e04bdd5405995698 /src/pj_init.c
parent6d16e577e73d94a8ec98e1b62b4dbe23d30fbb21 (diff)
downloadPROJ-67dc958368833fa125415a5e1f64ad33759fbf9e.tar.gz
PROJ-67dc958368833fa125415a5e1f64ad33759fbf9e.zip
add support for vunits/vto_meter parameters to specify vertical units
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@2000 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'src/pj_init.c')
-rw-r--r--src/pj_init.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/pj_init.c b/src/pj_init.c
index 26f32d1a..9e304a51 100644
--- a/src/pj_init.c
+++ b/src/pj_init.c
@@ -396,6 +396,21 @@ pj_init_ctx(projCtx ctx, int argc, char **argv) {
} else
PIN->to_meter = PIN->fr_meter = 1.;
+ /* set vertical units */
+ s = 0;
+ if ((name = pj_param(ctx, start, "svunits").s) != NULL) {
+ for (i = 0; (s = pj_units[i].id) && strcmp(name, s) ; ++i) ;
+ if (!s) { pj_ctx_set_errno( ctx, -7 ); goto bum_call; }
+ s = pj_units[i].to_meter;
+ }
+ if (s || (s = pj_param(ctx, start, "svto_meter").s)) {
+ PIN->vto_meter = strtod(s, &s);
+ if (*s == '/') /* ratio number */
+ PIN->vto_meter /= strtod(++s, 0);
+ PIN->vfr_meter = 1. / PIN->vto_meter;
+ } else
+ PIN->vto_meter = PIN->vfr_meter = 1.;
+
/* prime meridian */
s = 0;
if ((name = pj_param(ctx, start, "spm").s) != NULL) {