aboutsummaryrefslogtreecommitdiff
path: root/src/io.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/io.cpp')
-rw-r--r--src/io.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/io.cpp b/src/io.cpp
index 71d029ea..caf9b53d 100644
--- a/src/io.cpp
+++ b/src/io.cpp
@@ -6500,8 +6500,7 @@ CRSNNPtr PROJStringParser::Private::buildProjectedCRS(
}
} else if (step.name == "aeqd" && hasParamValue(step, "guam")) {
mapping = getMapping(EPSG_CODE_METHOD_GUAM_PROJECTION);
- } else if (step.name == "cea" &&
- !geogCRS->datum()->ellipsoid()->isSphere()) {
+ } else if (step.name == "cea" && !geogCRS->ellipsoid()->isSphere()) {
mapping = getMapping(EPSG_CODE_METHOD_LAMBERT_CYLINDRICAL_EQUAL_AREA);
} else if (step.name == "geos" && getParamValue(step, "sweep") == "x") {
mapping =
@@ -6598,6 +6597,15 @@ CRSNNPtr PROJStringParser::Private::buildProjectedCRS(
axisType = AxisType::SOUTH_POLE;
}
}
+ if (geogCRS->ellipsoid()->isSphere()) {
+ mapping = getMapping(
+ EPSG_CODE_METHOD_LAMBERT_AZIMUTHAL_EQUAL_AREA_SPHERICAL);
+ }
+ } else if (step.name == "eqc") {
+ if (geogCRS->ellipsoid()->isSphere()) {
+ mapping =
+ getMapping(EPSG_CODE_METHOD_EQUIDISTANT_CYLINDRICAL_SPHERICAL);
+ }
}
UnitOfMeasure unit = buildUnit(step, "units", "to_meter");