aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/crs.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-03-06 14:11:31 +0100
committerEven Rouault <even.rouault@spatialys.com>2020-03-06 14:11:31 +0100
commit6512ef2427ed6b303ae1c03b91907020cb5366d8 (patch)
tree2d6f318b8f1700ebcb35dbfd7791c038d7b2a212 /src/iso19111/crs.cpp
parent2dbca196a0c73972a0cc70856a42f01765868145 (diff)
downloadPROJ-6512ef2427ed6b303ae1c03b91907020cb5366d8.tar.gz
PROJ-6512ef2427ed6b303ae1c03b91907020cb5366d8.zip
WKT import/export: add support for WKT1_ESRI VERTCS syntax
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);
}