From eea77f043090837996df016af5f01e878be58602 Mon Sep 17 00:00:00 2001 From: Frank Warmerdam Date: Wed, 4 Apr 2001 21:13:21 +0000 Subject: do arcsecond/radian and ppm datum parm transformation in pj_set_datum() git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@922 4e78687f-474d-0410-85f9-8d5e500ac6b2 --- src/pj_datum_set.c | 16 ++++++++++++++++ src/pj_transform.c | 14 +++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/pj_datum_set.c b/src/pj_datum_set.c index 417479a5..a121ed2f 100644 --- a/src/pj_datum_set.c +++ b/src/pj_datum_set.c @@ -28,6 +28,9 @@ ****************************************************************************** * * $Log$ + * Revision 1.2 2001/04/04 21:13:21 warmerda + * do arcsecond/radian and ppm datum parm transformation in pj_set_datum() + * * Revision 1.1 2000/07/06 23:32:27 warmerda * New * @@ -36,6 +39,9 @@ #include #include +/* SEC_TO_RAD = Pi/180/3600 */ +#define SEC_TO_RAD 4.84813681109535993589914102357e-6 + /************************************************************************/ /* pj_datum_set() */ /************************************************************************/ @@ -120,7 +126,17 @@ int pj_datum_set(paralist *pl, PJ *projdef) || projdef->datum_params[4] != 0.0 || projdef->datum_params[5] != 0.0 || projdef->datum_params[6] != 0.0 ) + { projdef->datum_type = PJD_7PARAM; + + /* transform from arc seconds to radians */ + projdef->datum_params[3] *= SEC_TO_RAD; + projdef->datum_params[4] *= SEC_TO_RAD; + projdef->datum_params[5] *= SEC_TO_RAD; + /* transform from parts per million to scaling factor */ + projdef->datum_params[6] = + (projdef->datum_params[6]/1000000.0) + 1; + } else projdef->datum_type = PJD_3PARAM; diff --git a/src/pj_transform.c b/src/pj_transform.c index 0c665d54..683bdab8 100644 --- a/src/pj_transform.c +++ b/src/pj_transform.c @@ -30,6 +30,9 @@ ****************************************************************************** * * $Log$ + * Revision 1.3 2001/04/04 21:13:21 warmerda + * do arcsecond/radian and ppm datum parm transformation in pj_set_datum() + * * Revision 1.2 2001/04/04 16:08:08 warmerda * rewrote 7 param datum shift to match EPSG:9606, now works with example * @@ -51,16 +54,13 @@ #define SRS_WGS84_ESQUARED 0.006694379990 #endif -/* SEC_TO_RAD = Pi/180/3600 */ -#define SEC_TO_RAD 4.84813681109535993589914102357e-6 - #define Dx_BF (defn->datum_params[0]) #define Dy_BF (defn->datum_params[1]) #define Dz_BF (defn->datum_params[2]) -#define Rx_BF (defn->datum_params[3] * SEC_TO_RAD) -#define Ry_BF (defn->datum_params[4] * SEC_TO_RAD) -#define Rz_BF (defn->datum_params[5] * SEC_TO_RAD) -#define M_BF (1 + defn->datum_params[6] * 0.000001) +#define Rx_BF (defn->datum_params[3]) +#define Ry_BF (defn->datum_params[4]) +#define Rz_BF (defn->datum_params[5]) +#define M_BF (defn->datum_params[6]) /************************************************************************/ /* pj_transform() */ -- cgit v1.2.3