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.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp
index 45e2309c..e1181d43 100644
--- a/src/iso19111/crs.cpp
+++ b/src/iso19111/crs.cpp
@@ -2548,12 +2548,29 @@ const cs::VerticalCSNNPtr VerticalCRS::coordinateSystem() const {
void VerticalCRS::_exportToWKT(io::WKTFormatter *formatter) const {
const bool isWKT2 = formatter->version() == io::WKTFormatter::Version::WKT2;
formatter->startNode(isWKT2 ? io::WKTConstants::VERTCRS
- : io::WKTConstants::VERT_CS,
+ : formatter->useESRIDialect()
+ ? io::WKTConstants::VERTCS
+ : io::WKTConstants::VERT_CS,
!identifiers().empty());
formatter->addQuotedString(nameStr());
exportDatumOrDatumEnsembleToWkt(formatter);
const auto &cs = SingleCRS::getPrivate()->coordinateSystem;
const auto &axisList = cs->axisList();
+
+ if (formatter->useESRIDialect()) {
+ // Seems to be a constant value...
+ formatter->startNode(io::WKTConstants::PARAMETER, false);
+ formatter->addQuotedString("Vertical_Shift");
+ formatter->add(0.0);
+ formatter->endNode();
+
+ formatter->startNode(io::WKTConstants::PARAMETER, false);
+ formatter->addQuotedString("Direction");
+ formatter->add(
+ axisList[0]->direction() == cs::AxisDirection::UP ? 1.0 : -1.0);
+ formatter->endNode();
+ }
+
if (!isWKT2) {
axisList[0]->unit()._exportToWKT(formatter);
}