aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/crs.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-09-18 13:13:47 +0200
committerEven Rouault <even.rouault@spatialys.com>2021-09-18 13:13:47 +0200
commit527e1eb983955a82b87003d6c369c931a3ca0e36 (patch)
treea66543ba0e904341abbf0eed8165f5c940a4f21c /src/iso19111/crs.cpp
parent438ead90d3502f1bf2cb6ed466e75661f33c9445 (diff)
downloadPROJ-527e1eb983955a82b87003d6c369c931a3ca0e36.tar.gz
PROJ-527e1eb983955a82b87003d6c369c931a3ca0e36.zip
Optimize pipelines of planetary CRS (geocentric latitude, west-positive longitude)
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(