aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/crs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/iso19111/crs.cpp')
-rw-r--r--src/iso19111/crs.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp
index 598cedad..a12c6aa0 100644
--- a/src/iso19111/crs.cpp
+++ b/src/iso19111/crs.cpp
@@ -2073,8 +2073,16 @@ void GeodeticCRS::_exportToPROJString(
addGeocentricUnitConversionIntoPROJString(formatter);
} else if (isSphericalPlanetocentric()) {
if (!formatter->getCRSExport()) {
- formatter->addStep("geoc");
- addDatumInfoToPROJString(formatter);
+
+ if (!formatter->omitProjLongLatIfPossible() ||
+ primeMeridian()->longitude().getSIValue() != 0.0 ||
+ !ellipsoid()->isSphere() ||
+ !formatter->getTOWGS84Parameters().empty() ||
+ !formatter->getHDatumExtension().empty()) {
+ formatter->addStep("geoc");
+ addDatumInfoToPROJString(formatter);
+ }
+
addAngularUnitConvertAndAxisSwap(formatter);
} else {
io::FormattingException::Throw(