diff options
| author | Frank Warmerdam <warmerdam@pobox.com> | 2002-12-09 16:01:02 +0000 |
|---|---|---|
| committer | Frank Warmerdam <warmerdam@pobox.com> | 2002-12-09 16:01:02 +0000 |
| commit | 27c197f9da8005a2fd58bb8d902beb0864a2916b (patch) | |
| tree | 84dad4b3cca6d7e2adc3ce71333f432b22dd323c /src/pj_init.c | |
| parent | f8e9a822d7e9166b9925f75ba36bb7aa75afc3c1 (diff) | |
| download | PROJ-27c197f9da8005a2fd58bb8d902beb0864a2916b.tar.gz PROJ-27c197f9da8005a2fd58bb8d902beb0864a2916b.zip | |
added prime meridian support
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@1041 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'src/pj_init.c')
| -rw-r--r-- | src/pj_init.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/pj_init.c b/src/pj_init.c index 39cb7c81..0078ea13 100644 --- a/src/pj_init.c +++ b/src/pj_init.c @@ -248,6 +248,32 @@ pj_init(int argc, char **argv) { } else PIN->to_meter = PIN->fr_meter = 1.; + /* prime meridian */ + s = 0; + if (name = pj_param(start, "spm").s) { + const char *value = NULL; + char *next_str = NULL; + + for (i = 0; pj_prime_meridians[i].id != NULL; ++i ) + { + if( strcmp(name,pj_prime_meridians[i].id) == 0 ) + { + value = pj_prime_meridians[i].defn; + break; + } + } + + if( value == NULL + && dmstor(name,&next_str) != 0.0 + && *next_str == '\0' ) + value = name; + + if (!value) { pj_errno = -7; goto bum_call; } + PIN->from_greenwich = dmstor(value,NULL); + } + else + PIN->from_greenwich = 0.0; + /* projection specific initialization */ if (!(PIN = (*proj)(PIN)) || errno || pj_errno) { bum_call: /* cleanup error return */ |
