From 93a42eb2d905601691e921f4e1936c97420e78c8 Mon Sep 17 00:00:00 2001
From: Even Rouault <even.rouault@spatialys.com>
Date: Thu, 16 Nov 2023 22:49:42 +0100
Subject: [PATCH] pj_get_suggested_operation(): tune it to give correct result
 for RGAF09 to RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height
 transformation

---
 cmake/ProjTest.cmake             |  11 ++++++++---
 data/tests/fr_ign_RAGTBT2016.tif | Bin 0 -> 33374 bytes
 src/4D_api.cpp                   |  21 ++++++++++++---------
 src/iso19111/c_api.cpp           |   2 +-
 src/proj_internal.h              |  16 +++++++++++-----
 test/cli/testvarious             |  11 +++++++++++
 test/cli/tv_out.dist             |   4 ++++
 7 files changed, 47 insertions(+), 18 deletions(-)
 create mode 100644 data/tests/fr_ign_RAGTBT2016.tif

diff --git a/cmake/ProjTest.cmake b/cmake/ProjTest.cmake
index 5e035917f0..3de3fb4ce1 100644
--- a/cmake/ProjTest.cmake
+++ b/cmake/ProjTest.cmake
@@ -3,10 +3,15 @@
 #
 
 function(proj_test_set_properties TESTNAME)
-  set_property(TEST ${TESTNAME}
-    PROPERTY ENVIRONMENT
-      "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES"
+  set(_env "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES"
       "PROJ_DATA=${PROJ_BINARY_DIR}/data/for_tests")
+  if(TIFF_ENABLED)
+      set(_env ${_env} "TIFF_ENABLED=YES")
+  else()
+      set(_env ${_env} "TIFF_ENABLED=NO")
+  endif()
+  set_property(TEST ${TESTNAME}
+    PROPERTY ENVIRONMENT ${_env})
 endfunction()
 
 function(proj_add_test_script_sh SH_NAME BIN_USE)
diff --git a/data/tests/fr_ign_RAGTBT2016.tif b/data/tests/fr_ign_RAGTBT2016.tif
new file mode 100644
index 0000000000000000000000000000000000000000..f3479a9aca5b6ddebeeaa4056697759e0f5fbe2f
GIT binary patch
literal 33374
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
STpEY{Rp^HeCI1J`+8bB&;)nqN

literal 0
HcmV?d00001

diff --git a/src/4D_api.cpp b/src/4D_api.cpp
index d79fec8fd1..0b47902178 100644
--- a/src/4D_api.cpp
+++ b/src/4D_api.cpp
@@ -328,6 +328,8 @@ int pj_get_suggested_operation(PJ_CONTEXT *,
                   // the one that has the smallest area
                   (alt.accuracy == bestAccuracy &&
                    alt.pseudoArea < opList[iBest].pseudoArea &&
+                   !(alt.isUnknownAreaName &&
+                     !opList[iBest].isUnknownAreaName) &&
                    !opList[iBest].isPriorityOp)) &&
                  !alt.isOffshore)) {
 
@@ -1693,7 +1695,7 @@ static PJ *add_coord_op_to_list(
     int idxInOriginalList, PJ *op, double west_lon, double south_lat,
     double east_lon, double north_lat, PJ *pjGeogToSrc, PJ *pjGeogToDst,
     const PJ *pjSrcGeocentricToLonLat, const PJ *pjDstGeocentricToLonLat,
-    bool isOffshore, std::vector<PJCoordOperation> &altCoordOps) {
+    const char *areaName, std::vector<PJCoordOperation> &altCoordOps) {
     /*****************************************************************************/
 
     double minxSrc;
@@ -1742,8 +1744,8 @@ static PJ *add_coord_op_to_list(
         const double accuracy = proj_coordoperation_get_accuracy(op->ctx, op);
         altCoordOps.emplace_back(
             idxInOriginalList, minxSrc, minySrc, maxxSrc, maxySrc, minxDst,
-            minyDst, maxxDst, maxyDst, op, name, accuracy, pseudoArea,
-            isOffshore, pjSrcGeocentricToLonLat, pjDstGeocentricToLonLat);
+            minyDst, maxxDst, maxyDst, op, name, accuracy, pseudoArea, areaName,
+            pjSrcGeocentricToLonLat, pjDstGeocentricToLonLat);
         op = nullptr;
     }
     return op;
@@ -2018,23 +2020,22 @@ pj_create_prepared_operations(PJ_CONTEXT *ctx, const PJ *source_crs,
                 north_lat = 90;
             }
 
-            const bool isOffshore = areaName && strstr(areaName, "- offshore");
             if (west_lon <= east_lon) {
                 op = add_coord_op_to_list(
                     i, op, west_lon, south_lat, east_lon, north_lat,
                     pjGeogToSrc, pjGeogToDst, pjSrcGeocentricToLonLat,
-                    pjDstGeocentricToLonLat, isOffshore, preparedOpList);
+                    pjDstGeocentricToLonLat, areaName, preparedOpList);
             } else {
                 auto op_clone = proj_clone(ctx, op);
 
                 op = add_coord_op_to_list(
                     i, op, west_lon, south_lat, 180, north_lat, pjGeogToSrc,
                     pjGeogToDst, pjSrcGeocentricToLonLat,
-                    pjDstGeocentricToLonLat, isOffshore, preparedOpList);
+                    pjDstGeocentricToLonLat, areaName, preparedOpList);
                 op_clone = add_coord_op_to_list(
                     i, op_clone, -180, south_lat, east_lon, north_lat,
                     pjGeogToSrc, pjGeogToDst, pjSrcGeocentricToLonLat,
-                    pjDstGeocentricToLonLat, isOffshore, preparedOpList);
+                    pjDstGeocentricToLonLat, areaName, preparedOpList);
                 proj_destroy(op_clone);
             }
 
@@ -3019,13 +3020,15 @@ PJCoordOperation::PJCoordOperation(
     int idxInOriginalListIn, double minxSrcIn, double minySrcIn,
     double maxxSrcIn, double maxySrcIn, double minxDstIn, double minyDstIn,
     double maxxDstIn, double maxyDstIn, PJ *pjIn, const std::string &nameIn,
-    double accuracyIn, double pseudoAreaIn, bool isOffshoreIn,
+    double accuracyIn, double pseudoAreaIn, const char *areaNameIn,
     const PJ *pjSrcGeocentricToLonLatIn, const PJ *pjDstGeocentricToLonLatIn)
     : idxInOriginalList(idxInOriginalListIn), minxSrc(minxSrcIn),
       minySrc(minySrcIn), maxxSrc(maxxSrcIn), maxySrc(maxySrcIn),
       minxDst(minxDstIn), minyDst(minyDstIn), maxxDst(maxxDstIn),
       maxyDst(maxyDstIn), pj(pjIn), name(nameIn), accuracy(accuracyIn),
-      pseudoArea(pseudoAreaIn), isOffshore(isOffshoreIn),
+      pseudoArea(pseudoAreaIn), areaName(areaNameIn ? areaNameIn : ""),
+      isOffshore(areaName.find("- offshore") != std::string::npos),
+      isUnknownAreaName(areaName.empty() || areaName == "unknown"),
       isPriorityOp(isSpecialCaseForNAD83_to_NAD83HARN(name) ||
                    isSpecialCaseForGDA94_to_WGS84(name) ||
                    isSpecialCaseForWGS84_to_GDA2020(name)),
diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp
index 64da697f8f..c84e829018 100644
--- a/src/iso19111/c_api.cpp
+++ b/src/iso19111/c_api.cpp
@@ -9110,7 +9110,7 @@ PJ *proj_normalize_for_visualization(PJ_CONTEXT *ctx, const PJ *obj) {
                         alt.idxInOriginalList, minxSrc, minySrc, maxxSrc,
                         maxySrc, minxDst, minyDst, maxxDst, maxyDst,
                         pjNormalized, co->nameStr(), alt.accuracy,
-                        alt.pseudoArea, alt.isOffshore,
+                        alt.pseudoArea, alt.areaName.c_str(),
                         alt.pjSrcGeocentricToLonLat,
                         alt.pjDstGeocentricToLonLat);
                 }
diff --git a/src/proj_internal.h b/src/proj_internal.h
index 409b1a5f32..f2a9a9a98b 100644
--- a/src/proj_internal.h
+++ b/src/proj_internal.h
@@ -343,7 +343,9 @@ struct PJCoordOperation {
     std::string name{};
     double accuracy = -1.0;
     double pseudoArea = 0.0;
+    std::string areaName{};
     bool isOffshore = false;
+    bool isUnknownAreaName = false;
     bool isPriorityOp = false;
     bool srcIsLonLatDegree = false;
     bool srcIsLatLonDegree = false;
@@ -364,8 +366,8 @@ struct PJCoordOperation {
                      double minySrcIn, double maxxSrcIn, double maxySrcIn,
                      double minxDstIn, double minyDstIn, double maxxDstIn,
                      double maxyDstIn, PJ *pjIn, const std::string &nameIn,
-                     double accuracyIn, double pseudoAreaIn, bool isOffshoreIn,
-                     const PJ *pjSrcGeocentricToLonLatIn,
+                     double accuracyIn, double pseudoAreaIn,
+                     const char *areaName, const PJ *pjSrcGeocentricToLonLatIn,
                      const PJ *pjDstGeocentricToLonLatIn);
 
     PJCoordOperation(const PJCoordOperation &) = delete;
@@ -377,7 +379,9 @@ struct PJCoordOperation {
           minyDst(other.minyDst), maxxDst(other.maxxDst),
           maxyDst(other.maxyDst), pj(proj_clone(ctx, other.pj)),
           name(std::move(other.name)), accuracy(other.accuracy),
-          pseudoArea(other.pseudoArea), isOffshore(other.isOffshore),
+          pseudoArea(other.pseudoArea), areaName(other.areaName),
+          isOffshore(other.isOffshore),
+          isUnknownAreaName(other.isUnknownAreaName),
           isPriorityOp(other.isPriorityOp),
           srcIsLonLatDegree(other.srcIsLonLatDegree),
           srcIsLatLonDegree(other.srcIsLatLonDegree),
@@ -399,7 +403,9 @@ struct PJCoordOperation {
           minyDst(other.minyDst), maxxDst(other.maxxDst),
           maxyDst(other.maxyDst), name(std::move(other.name)),
           accuracy(other.accuracy), pseudoArea(other.pseudoArea),
-          isOffshore(other.isOffshore), isPriorityOp(other.isPriorityOp),
+          areaName(std::move(other.areaName)), isOffshore(other.isOffshore),
+          isUnknownAreaName(other.isUnknownAreaName),
+          isPriorityOp(other.isPriorityOp),
           srcIsLonLatDegree(other.srcIsLonLatDegree),
           srcIsLatLonDegree(other.srcIsLatLonDegree),
           dstIsLonLatDegree(other.dstIsLonLatDegree),
@@ -422,7 +428,7 @@ struct PJCoordOperation {
                maxxDst == other.maxxDst && maxyDst == other.maxyDst &&
                name == other.name &&
                proj_is_equivalent_to(pj, other.pj, PJ_COMP_STRICT) &&
-               accuracy == other.accuracy && isOffshore == other.isOffshore;
+               accuracy == other.accuracy && areaName == other.areaName;
     }
 
     bool operator!=(const PJCoordOperation &other) const {
diff --git a/test/cli/testvarious b/test/cli/testvarious
index 2d6701c3ab..38c5a75686 100755
--- a/test/cli/testvarious
+++ b/test/cli/testvarious
@@ -1338,6 +1338,17 @@ $EXE -d 3 EPSG:3912+EPSG:5779 EPSG:3794+EPSG:8690 -E >>${OUT} 2>&1 <<EOF
 477134.28 95134.21 5
 EOF
 
+echo "##############################################################" >> ${OUT}
+echo "Test cs2cs EPSG:5488 (RGAF09) to EPSG:4559+5757 (RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height)" >> ${OUT}
+echo "Check that we use the horizontal transformation for Guadeloupe (RRAF 1991 to RGAF09 (2)), and not the one for Martinique" >> ${OUT}
+#
+if test "${TIFF_ENABLED}" = "yes"; then
+PROJ_DATA=${PROJ_DATA}:${PROJ_DATA}/tests $EXE -d 3 EPSG:5488 EPSG:4559+5757 >> ${OUT} <<EOF
+16.248285304 -61.484212843 53.073
+EOF
+else
+printf "661991.318\t1796999.201 93.846" >> ${OUT}
+fi
 
 # Done!
 # do 'diff' with distribution results
diff --git a/test/cli/tv_out.dist b/test/cli/tv_out.dist
index 3fc3cc1f0c..b2418c52f5 100644
--- a/test/cli/tv_out.dist
+++ b/test/cli/tv_out.dist
@@ -640,3 +640,7 @@ Test inverse of Similarity Transformation (example from EPSG Guidance Note 7.2)
 Test Similarity Transformation through CompoundCRS
 477134.28 95134.21	476763.303	95620.222 0.000
 477134.28 95134.21 5	476763.303	95620.222 5.000
+##############################################################
+Test cs2cs EPSG:5488 (RGAF09) to EPSG:4559+5757 (RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height)
+Check that we use the horizontal transformation for Guadeloupe (RRAF 1991 to RGAF09 (2)), and not the one for Martinique
+661991.318	1796999.201 93.846