aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-04-22 13:15:02 +0200
committerEven Rouault <even.rouault@spatialys.com>2019-04-22 15:49:31 +0200
commitd8526d7870e4b91238c9a7b652ed03c21b77e884 (patch)
treeccd8cfe10d750f60bc81050f42847f218855dcb5 /src
parente63f206d994658995505ce322d644fba0b807d5b (diff)
downloadPROJ-d8526d7870e4b91238c9a7b652ed03c21b77e884.tar.gz
PROJ-d8526d7870e4b91238c9a7b652ed03c21b77e884.zip
ESRI_WKT: preserve Gauss_Kruger in conversion name for round-tripping
Diffstat (limited to 'src')
-rw-r--r--src/iso19111/c_api.cpp3
-rw-r--r--src/iso19111/coordinateoperation.cpp9
-rw-r--r--src/iso19111/io.cpp5
3 files changed, 11 insertions, 6 deletions
diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp
index 8fea51e9..6a2a1ae0 100644
--- a/src/iso19111/c_api.cpp
+++ b/src/iso19111/c_api.cpp
@@ -5964,7 +5964,8 @@ int proj_coordoperation_get_param(
* @param out_values Pointer to an array of value_count double values.
* @param value_count Size of out_values array. The suggested size is 7 to get
* translation, rotation and scale difference parameters. Rotation and scale
- * difference terms might be zero if the transformation only includes translation
+ * difference terms might be zero if the transformation only includes
+ * translation
* parameters. In that case, value_count could be set to 3.
* @param emit_error_if_incompatible Boolean to inicate if an error must be
* logged if coordoperation is not compatible with a WKT1 TOWGS84
diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp
index 7eab849c..0b4e7912 100644
--- a/src/iso19111/coordinateoperation.cpp
+++ b/src/iso19111/coordinateoperation.cpp
@@ -5120,10 +5120,11 @@ static void getESRIMethodNameAndParams(const Conversion *conv,
}
} else if (esriMapping->epsg_code ==
EPSG_CODE_METHOD_TRANSVERSE_MERCATOR) {
- if (l_targetCRS &&
- (ci_find(l_targetCRS->nameStr(), "Gauss") !=
- std::string::npos ||
- ci_find(l_targetCRS->nameStr(), "GK_") != std::string::npos)) {
+ if (ci_find(conv->nameStr(), "Gauss Kruger") != std::string::npos ||
+ (l_targetCRS && (ci_find(l_targetCRS->nameStr(), "Gauss") !=
+ std::string::npos ||
+ ci_find(l_targetCRS->nameStr(), "GK_") !=
+ std::string::npos))) {
esriParams = paramsESRI_Gauss_Kruger;
esriMethodName = "Gauss_Kruger";
} else {
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp
index 360d55a2..399908eb 100644
--- a/src/iso19111/io.cpp
+++ b/src/iso19111/io.cpp
@@ -3257,7 +3257,10 @@ ConversionNNPtr WKTParser::Private::buildProjectionFromESRI(
}
return Conversion::create(
- PropertyMap().set(IdentifiedObject::NAME_KEY, "unnamed"),
+ PropertyMap().set(IdentifiedObject::NAME_KEY,
+ esriProjectionName == "Gauss_Kruger"
+ ? "unnnamed (Gauss Kruger)"
+ : "unnamed"),
propertiesMethod, parameters, values)
->identify();
}