From 275cbbaca08864867e6e3c7bf199a38204d3fffe Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 21 Jun 2018 23:44:53 +0200 Subject: Make +proj=geocent and +proj=cart take into account +to_meter (relates to #1053) --- src/pj_fwd.c | 3 +++ src/pj_inv.c | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/pj_fwd.c b/src/pj_fwd.c index b5f1b36e..2ed4c469 100644 --- a/src/pj_fwd.c +++ b/src/pj_fwd.c @@ -114,6 +114,9 @@ static PJ_COORD fwd_finalize (PJ *P, PJ_COORD coo) { if (P->is_geocent) { coo = proj_trans (P->cart, PJ_FWD, coo); } + coo.xyz.x *= P->fr_meter; + coo.xyz.y *= P->fr_meter; + coo.xyz.z *= P->fr_meter; break; diff --git a/src/pj_inv.c b/src/pj_inv.c index ca149674..d1a02bca 100644 --- a/src/pj_inv.c +++ b/src/pj_inv.c @@ -100,8 +100,12 @@ static PJ_COORD inv_prepare (PJ *P, PJ_COORD coo) { /* de-scale and de-offset */ case PJ_IO_UNITS_CARTESIAN: - if (P->is_geocent) + coo.xyz.x *= P->to_meter; + coo.xyz.y *= P->to_meter; + coo.xyz.z *= P->to_meter; + if (P->is_geocent) { coo = proj_trans (P->cart, PJ_INV, coo); + } return coo; -- cgit v1.2.3