aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2018-03-20 21:47:48 +0100
committerKristian Evers <kristianevers@gmail.com>2018-03-20 22:47:47 +0100
commit35a2b5cbe6386e985ae53c95b618dc89f60d6e60 (patch)
tree65153cbb592e74fabf457fcf5911a07422811588
parent8e0c5db70431dea254d6de3a380fe76bccfbbb1f (diff)
downloadPROJ-35a2b5cbe6386e985ae53c95b618dc89f60d6e60.tar.gz
PROJ-35a2b5cbe6386e985ae53c95b618dc89f60d6e60.zip
Introduce late expansion of +datum parameters. Fixes #872.
-rw-r--r--src/pj_init.c9
-rw-r--r--test/gie/4D-API_cs2cs-style.gie13
2 files changed, 19 insertions, 3 deletions
diff --git a/src/pj_init.c b/src/pj_init.c
index a6c50a14..48921aa5 100644
--- a/src/pj_init.c
+++ b/src/pj_init.c
@@ -587,9 +587,12 @@ pj_init_ctx(projCtx ctx, int argc, char **argv) {
PIN->vgridlist_geoid = NULL;
PIN->vgridlist_geoid_count = 0;
- /* Set datum parameters */
- if (pj_datum_set(ctx, start, PIN))
- return pj_default_destructor (PIN, proj_errno(PIN));
+ /* Set datum parameters. Similarly to +init parameters we want to expand */
+ /* +datum parameters as late as possible when dealing with pipelines. */
+ /* otherwise only the first occurrence of +datum will be expanded and that */
+ if (n_pipelines == 0)
+ if (pj_datum_set(ctx, start, PIN))
+ return pj_default_destructor (PIN, proj_errno(PIN));
err = pj_ellipsoid (PIN);
diff --git a/test/gie/4D-API_cs2cs-style.gie b/test/gie/4D-API_cs2cs-style.gie
index b7c37c83..37f223b7 100644
--- a/test/gie/4D-API_cs2cs-style.gie
+++ b/test/gie/4D-API_cs2cs-style.gie
@@ -214,4 +214,17 @@ accept 487147.594520173 4934316.46263998 0
expect -10370728.80 5552839.74 0
-------------------------------------------------------------------------------
+-------------------------------------------------------------------------------
+Test that +datum parameters are handled correctly in pipelines.
+See #872 for details.
+-------------------------------------------------------------------------------
+operation +proj=pipeline
+ +step +proj=longlat +datum=NAD27 +inv
+ +step +proj=longlat +datum=WGS84
+-------------------------------------------------------------------------------
+tolerance 20 cm
+accept -100 40 0
+expect -100.0004058367 40.0000058947 0.0000
+-------------------------------------------------------------------------------
+
</gie>