aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/crs.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-02-10 17:51:13 +0100
committerEven Rouault <even.rouault@spatialys.com>2021-02-10 17:51:13 +0100
commit836af9dcf12c3870e8a412c97f6968b69c4b3bad (patch)
tree9365b058b3a1a3ac0148b13a9623460a9beff6ad /src/iso19111/crs.cpp
parenta7f6b407446b35a50b5601650aed993c706fe8ee (diff)
downloadPROJ-836af9dcf12c3870e8a412c97f6968b69c4b3bad.tar.gz
PROJ-836af9dcf12c3870e8a412c97f6968b69c4b3bad.zip
Fix handling of +proj=ob_tran +o_proj=longlat combined with +over (fixes #2510)
Diffstat (limited to 'src/iso19111/crs.cpp')
-rw-r--r--src/iso19111/crs.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp
index 9d58f733..1ac60d88 100644
--- a/src/iso19111/crs.cpp
+++ b/src/iso19111/crs.cpp
@@ -5757,11 +5757,17 @@ void DerivedGeographicCRS::_exportToPROJString(
{
const auto &l_conv = derivingConversionRef();
const auto &methodName = l_conv->method()->nameStr();
- if (methodName == "PROJ ob_tran o_proj=longlat" ||
- methodName == "PROJ ob_tran o_proj=lonlat" ||
- methodName == "PROJ ob_tran o_proj=latlong" ||
- methodName == "PROJ ob_tran o_proj=latlon" ||
- ci_equal(methodName,
+
+ for (const char *substr :
+ {"PROJ ob_tran o_proj=longlat", "PROJ ob_tran o_proj=lonlat",
+ "PROJ ob_tran o_proj=latlon", "PROJ ob_tran o_proj=latlong"}) {
+ if (starts_with(methodName, substr)) {
+ l_conv->_exportToPROJString(formatter);
+ return;
+ }
+ }
+
+ if (ci_equal(methodName,
PROJ_WKT2_NAME_METHOD_POLE_ROTATION_GRIB_CONVENTION)) {
l_conv->_exportToPROJString(formatter);
return;