aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-09-11 15:55:17 +0200
committerEven Rouault <even.rouault@spatialys.com>2019-09-15 13:20:43 +0200
commit0673f88a96adcabf3a21ed02c182bb94f50fcf89 (patch)
treea7842dcf3d3dacdce0962f8642f1798c68c84e6a /src
parent6dcbdb941c0e1faef8f60a80c6c3aab483850bcb (diff)
downloadPROJ-0673f88a96adcabf3a21ed02c182bb94f50fcf89.tar.gz
PROJ-0673f88a96adcabf3a21ed02c182bb94f50fcf89.zip
Ingestion of +proj=somerc +type=crs: avoid adding twice alpha, gamma, lon_0 (related to #1597)
Diffstat (limited to 'src')
-rw-r--r--src/iso19111/io.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp
index 7194a838..dfe6f6a8 100644
--- a/src/iso19111/io.cpp
+++ b/src/iso19111/io.cpp
@@ -8313,10 +8313,13 @@ CRSNNPtr PROJStringParser::Private::buildProjectedCRS(
} else if (step.name == "somerc") {
mapping =
getMapping(EPSG_CODE_METHOD_HOTINE_OBLIQUE_MERCATOR_VARIANT_B);
- step.paramValues.emplace_back(Step::KeyValue("alpha", "90"));
- step.paramValues.emplace_back(Step::KeyValue("gamma", "90"));
- step.paramValues.emplace_back(
- Step::KeyValue("lonc", getParamValue(step, "lon_0")));
+ if (!hasParamValue(step, "alpha") && !hasParamValue(step, "gamma") &&
+ !hasParamValue(step, "lonc")) {
+ step.paramValues.emplace_back(Step::KeyValue("alpha", "90"));
+ step.paramValues.emplace_back(Step::KeyValue("gamma", "90"));
+ step.paramValues.emplace_back(
+ Step::KeyValue("lonc", getParamValue(step, "lon_0")));
+ }
} else if (step.name == "krovak" &&
((getParamValue(step, "axis") == "swu" && iAxisSwap < 0) ||
(iAxisSwap > 0 &&