aboutsummaryrefslogtreecommitdiff
path: root/src/pj_transform.c
diff options
context:
space:
mode:
authorFrank Warmerdam <warmerdam@pobox.com>2002-12-09 16:01:02 +0000
committerFrank Warmerdam <warmerdam@pobox.com>2002-12-09 16:01:02 +0000
commit27c197f9da8005a2fd58bb8d902beb0864a2916b (patch)
tree84dad4b3cca6d7e2adc3ce71333f432b22dd323c /src/pj_transform.c
parentf8e9a822d7e9166b9925f75ba36bb7aa75afc3c1 (diff)
downloadPROJ-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_transform.c')
-rw-r--r--src/pj_transform.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/pj_transform.c b/src/pj_transform.c
index ba136d20..a6c9aee3 100644
--- a/src/pj_transform.c
+++ b/src/pj_transform.c
@@ -30,6 +30,9 @@
******************************************************************************
*
* $Log$
+ * Revision 1.6 2002/12/09 16:01:02 warmerda
+ * added prime meridian support
+ *
* Revision 1.5 2002/12/01 19:25:26 warmerda
* applied fix for 7 param shift in pj_geocentric_from_wgs84, see bug 194
*
@@ -111,6 +114,15 @@ int pj_transform( PJ *srcdefn, PJ *dstdefn, long point_count, int point_offset,
y[point_offset*i] = geodetic_loc.v;
}
}
+/* -------------------------------------------------------------------- */
+/* But if they are already lat long, adjust for the prime */
+/* meridian if there is one in effect. */
+/* -------------------------------------------------------------------- */
+ else if( srcdefn->from_greenwich != 0.0 )
+ {
+ for( i = 0; i < point_count; i++ )
+ x[point_offset*i] += srcdefn->from_greenwich;
+ }
/* -------------------------------------------------------------------- */
/* Convert datums if needed, and possible. */
@@ -141,6 +153,16 @@ int pj_transform( PJ *srcdefn, PJ *dstdefn, long point_count, int point_offset,
y[point_offset*i] = projected_loc.v;
}
}
+/* -------------------------------------------------------------------- */
+/* But if they are staying lat long, adjust for the prime */
+/* meridian if there is one in effect. */
+/* -------------------------------------------------------------------- */
+ else if( dstdefn->from_greenwich != 0.0 )
+ {
+ for( i = 0; i < point_count; i++ )
+ x[point_offset*i] -= dstdefn->from_greenwich;
+ }
+
return 0;
}