aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2018-08-19 14:31:01 +0200
committerEven Rouault <even.rouault@spatialys.com>2018-08-19 14:31:01 +0200
commitf05de97c210ece96da6f230465e483e0cfff2c7d (patch)
treeb8fbc5bc3ba5086030665621d300c80df604969c
parentbb8937e047afef45bbb790613106165c71746c49 (diff)
downloadPROJ-f05de97c210ece96da6f230465e483e0cfff2c7d.tar.gz
PROJ-f05de97c210ece96da6f230465e483e0cfff2c7d.zip
pj_transform / cs2cs: honour +geoc flag
-rwxr-xr-xnad/testvarious37
-rw-r--r--nad/tv_out.dist12
-rw-r--r--src/pj_transform.c4
3 files changed, 37 insertions, 16 deletions
diff --git a/nad/testvarious b/nad/testvarious
index 30d1402f..c0a8ff29 100755
--- a/nad/testvarious
+++ b/nad/testvarious
@@ -139,20 +139,29 @@ $EXE +proj=geocent +datum=WGS84 \
0.00 -0.00 6356752.31
EOF
#
-#echo "#############################################################" >> ${OUT}
-#echo Test conversion between geocentric latlong and geodetic latlong >> ${OUT}
-#
-# The +geoc flag does not currently work with pj_transform() so this is
-# disabled.
-#
-#$EXE +proj=latlong +datum=WGS84 +geoc \
-# +to +proj=latlong +datum=WGS84 \
-# -E >>${OUT} <<EOF
-#0d00'00.000"W 0d00'00.000"N 0.0
-#79d00'00.000"W 45d00'00.000"N 0.0
-#12d00'00.000"W 45d00'00.000"N 0.0
-#0d00'00.000"W 90d00'00.000"N 0.0
-#EOF
+echo "#############################################################" >> ${OUT}
+echo Test conversion from geocentric latlong to geodetic latlong >> ${OUT}
+#
+$EXE +proj=latlong +datum=WGS84 +geoc \
+ +to +proj=latlong +datum=WGS84 \
+ -E >>${OUT} <<EOF
+0d00'00.000"W 0d00'00.000"N 0.0
+79d00'00.000"W 45d00'00.000"N 0.0
+12d00'00.000"W 45d00'00.000"N 0.0
+0d00'00.000"W 90d00'00.000"N 0.0
+EOF
+#
+echo "#############################################################" >> ${OUT}
+echo Test conversion from geodetic latlong to geocentric latlong >> ${OUT}
+#
+$EXE +proj=latlong +datum=WGS84 \
+ +to +proj=latlong +datum=WGS84 +geoc \
+ -E >>${OUT} <<EOF
+0d00'00.000"W 0d00'00.000"N 0.0
+79d00'00.000"W 44d48'27.276"N 0.000
+12d00'00.000"W 44d48'27.276"N 0.0
+0d00'00.000"W 90d00'00.000"N 0.0
+EOF
#
echo "##############################################################" >> ${OUT}
echo "Test stere projection (re: win32 ticket 12)" >> ${OUT}
diff --git a/nad/tv_out.dist b/nad/tv_out.dist
index 743eeabe..f04e2c35 100644
--- a/nad/tv_out.dist
+++ b/nad/tv_out.dist
@@ -42,6 +42,18 @@ Test geocentric x/y/z consumption.
6378147.00 -0.00 0.00 0dE 0dN 10.000
861996.98 -4434590.01 4487348.41 79dW 45dN 0.001
0.00 -0.00 6356752.31 0dE 90dN -0.004
+#############################################################
+Test conversion from geocentric latlong to geodetic latlong
+0d00'00.000"W 0d00'00.000"N 0.0 0dE 0dN 0.000
+79d00'00.000"W 45d00'00.000"N 0.0 79dW 44d48'27.276"N 0.000
+12d00'00.000"W 45d00'00.000"N 0.0 12dW 44d48'27.276"N 0.000
+0d00'00.000"W 90d00'00.000"N 0.0 0dE 90dN 0.000
+#############################################################
+Test conversion from geodetic latlong to geocentric latlong
+0d00'00.000"W 0d00'00.000"N 0.0 0dE 0dN 0.000
+79d00'00.000"W 44d48'27.276"N 0.000 79dW 45dN 0.000
+12d00'00.000"W 44d48'27.276"N 0.0 12dW 45dN 0.000
+0d00'00.000"W 90d00'00.000"N 0.0 0dE 90dN 0.000
##############################################################
Test stere projection (re: win32 ticket 12)
105 40 5577808.93 1494569.40 0.00
diff --git a/src/pj_transform.c b/src/pj_transform.c
index b459e4a2..80294f6d 100644
--- a/src/pj_transform.c
+++ b/src/pj_transform.c
@@ -190,7 +190,7 @@ static int geographic_to_projected (PJ *P, long n, int dist, double *x, double *
long i;
/* Nothing to do? */
- if (P->is_latlong)
+ if (P->is_latlong && !P->geoc)
return 0;
if (P->is_geocent)
return 0;
@@ -290,7 +290,7 @@ static int projected_to_geographic (PJ *P, long n, int dist, double *x, double *
long i;
/* Nothing to do? */
- if (P->is_latlong)
+ if (P->is_latlong && !P->geoc)
return 0;
/* Check first if projection is invertible. */