aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrank Warmerdam <warmerdam@pobox.com>2002-12-01 19:25:35 +0000
committerFrank Warmerdam <warmerdam@pobox.com>2002-12-01 19:25:35 +0000
commitf8e9a822d7e9166b9925f75ba36bb7aa75afc3c1 (patch)
tree1a7a3fcf463e9b6d04068fd3b387e2324870ae9b /src
parent0cacdd1b5918ed7e7d593c79202265fd6f64e3d4 (diff)
downloadPROJ-f8e9a822d7e9166b9925f75ba36bb7aa75afc3c1.tar.gz
PROJ-f8e9a822d7e9166b9925f75ba36bb7aa75afc3c1.zip
applied fix for 7 param shift in pj_geocentric_from_wgs84, see bug 194
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@1040 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'src')
-rw-r--r--src/pj_transform.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/pj_transform.c b/src/pj_transform.c
index 8285878f..ba136d20 100644
--- a/src/pj_transform.c
+++ b/src/pj_transform.c
@@ -30,6 +30,9 @@
******************************************************************************
*
* $Log$
+ * Revision 1.5 2002/12/01 19:25:26 warmerda
+ * applied fix for 7 param shift in pj_geocentric_from_wgs84, see bug 194
+ *
* Revision 1.4 2002/02/15 14:30:36 warmerda
* provide default Z array if none passed in in pj_datum_transform()
*
@@ -333,15 +336,15 @@ int pj_geocentric_from_wgs84( PJ *defn,
for( i = 0; i < point_count; i++ )
{
long io = i * point_offset;
- double x_out, y_out, z_out;
+ double x_tmp, y_tmp, z_tmp;
- x_out = M_BF*( x[io] + Rz_BF*y[io] - Ry_BF*z[io]) - Dx_BF;
- y_out = M_BF*(-Rz_BF*x[io] + y[io] + Rx_BF*z[io]) - Dy_BF;
- z_out = M_BF*( Ry_BF*x[io] - Rx_BF*y[io] + z[io]) - Dz_BF;
+ x_tmp = (x[io] - Dx_BF) / M_BF;
+ y_tmp = (y[io] - Dy_BF) / M_BF;
+ z_tmp = (z[io] - Dz_BF) / M_BF;
- x[io] = x_out;
- y[io] = y_out;
- z[io] = z_out;
+ x[io] = x_tmp + Rz_BF*y_tmp - Ry_BF*z_tmp;
+ y[io] = -Rz_BF*x_tmp + y_tmp + Rx_BF*z_tmp;
+ z[io] = Ry_BF*x_tmp - Rx_BF*y_tmp + z_tmp;
}
}