diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-03-25 12:07:35 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-03-25 12:44:35 +0100 |
| commit | d4fd50f10ecabb9e9642cb4f877262e082677be4 (patch) | |
| tree | facc35a7cf88385ec6fe2ac2c7d43997ff56d894 /src | |
| parent | 72f0e8a895a861e4323cac61b73f807c8a5f1c0d (diff) | |
| download | PROJ-d4fd50f10ecabb9e9642cb4f877262e082677be4.tar.gz PROJ-d4fd50f10ecabb9e9642cb4f877262e082677be4.zip | |
WKT2_2018: export ID in base crs node, when there is none on top of upper node
This is the standard logic, that is now possible since ID is
allowed in BASEGEOGCRS and similar node
Diffstat (limited to 'src')
| -rw-r--r-- | src/iso19111/crs.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp index 74f6f999..9779d817 100644 --- a/src/iso19111/crs.cpp +++ b/src/iso19111/crs.cpp @@ -2428,9 +2428,13 @@ void DerivedCRS::baseExportToWKT(io::WKTFormatter *formatter, formatter->addQuotedString(nameStr()); const auto &l_baseCRS = d->baseCRS_; - formatter->startNode(baseKeyword, !l_baseCRS->identifiers().empty()); + formatter->startNode(baseKeyword, formatter->use2018Keywords() && + !l_baseCRS->identifiers().empty()); formatter->addQuotedString(l_baseCRS->nameStr()); l_baseCRS->exportDatumOrDatumEnsembleToWkt(formatter); + if (formatter->use2018Keywords() && formatter->outputId()) { + l_baseCRS->formatID(formatter); + } formatter->endNode(); formatter->setUseDerivingConversion(true); @@ -2658,7 +2662,7 @@ void ProjectedCRS::_exportToWKT(io::WKTFormatter *formatter) const { dynamic_cast<const GeographicCRS *>(l_baseCRS.get())) ? io::WKTConstants::BASEGEOGCRS : io::WKTConstants::BASEGEODCRS, - !l_baseCRS->identifiers().empty()); + formatter->use2018Keywords() && !l_baseCRS->identifiers().empty()); formatter->addQuotedString(l_baseCRS->nameStr()); l_baseCRS->exportDatumOrDatumEnsembleToWkt(formatter); // insert ellipsoidal cs unit when the units of the map @@ -2669,6 +2673,9 @@ void ProjectedCRS::_exportToWKT(io::WKTFormatter *formatter) const { geodeticCRSAxisList[0]->unit()._exportToWKT(formatter); } l_baseCRS->primeMeridian()->_exportToWKT(formatter); + if (formatter->use2018Keywords() && formatter->outputId()) { + l_baseCRS->formatID(formatter); + } formatter->endNode(); } else { const auto oldAxisOutputRule = formatter->outputAxis(); |
