aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/io.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2019-08-26 21:44:21 +0200
committerEven Rouault <even.rouault@spatialys.com>2019-08-26 21:44:21 +0200
commit10a30bb539be1afb25952b19af8bbe72e1b13b56 (patch)
tree88caf55ae18c5fc3e73cfcddf5679d5af78e3f0e /src/iso19111/io.cpp
parentae70b26b9cbae85a38d5b26533ba06da0ea13940 (diff)
downloadPROJ-10a30bb539be1afb25952b19af8bbe72e1b13b56.tar.gz
PROJ-10a30bb539be1afb25952b19af8bbe72e1b13b56.zip
Fix 6.0 regression regarding +init=epsg:4326 +over +to +init=epsg:3857 +over with longitudes outside of [-180,180]
Diffstat (limited to 'src/iso19111/io.cpp')
-rw-r--r--src/iso19111/io.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp
index 3b630a10..20a90946 100644
--- a/src/iso19111/io.cpp
+++ b/src/iso19111/io.cpp
@@ -8255,6 +8255,7 @@ CRSNNPtr PROJStringParser::Private::buildProjectedCRS(
}
auto axisType = AxisType::REGULAR;
+ bool bWebMercator = false;
if (step.name == "tmerc" &&
((getParamValue(step, "axis") == "wsu" && iAxisSwap < 0) ||
@@ -8337,8 +8338,7 @@ CRSNNPtr PROJStringParser::Private::buildProjectedCRS(
}
}
if (getNumericValue(getParamValue(step, "a")) == 6378137) {
- return createPseudoMercator(PropertyMap().set(
- IdentifiedObject::NAME_KEY, "WGS 84 / Pseudo-Mercator"));
+ bWebMercator = true;
}
} else if (hasParamValue(step, "lat_ts")) {
mapping = getMapping(EPSG_CODE_METHOD_MERCATOR_VARIANT_B);
@@ -8599,7 +8599,11 @@ CRSNNPtr PROJStringParser::Private::buildProjectedCRS(
props.set("IMPLICIT_CS", true);
- CRSNNPtr crs = ProjectedCRS::create(props, geogCRS, NN_NO_CHECK(conv), cs);
+ CRSNNPtr crs =
+ bWebMercator
+ ? createPseudoMercator(props.set(IdentifiedObject::NAME_KEY,
+ "WGS 84 / Pseudo-Mercator"))
+ : ProjectedCRS::create(props, geogCRS, NN_NO_CHECK(conv), cs);
if (!hasParamValue(step, "geoidgrids") &&
(hasParamValue(step, "vunits") || hasParamValue(step, "vto_meter"))) {