diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-09-11 15:55:17 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-09-15 13:20:43 +0200 |
| commit | 0673f88a96adcabf3a21ed02c182bb94f50fcf89 (patch) | |
| tree | a7842dcf3d3dacdce0962f8642f1798c68c84e6a /src/iso19111/io.cpp | |
| parent | 6dcbdb941c0e1faef8f60a80c6c3aab483850bcb (diff) | |
| download | PROJ-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/iso19111/io.cpp')
| -rw-r--r-- | src/iso19111/io.cpp | 11 |
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 && |
