aboutsummaryrefslogtreecommitdiff
path: root/src/io.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/io.cpp')
-rw-r--r--src/io.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/io.cpp b/src/io.cpp
index 79f8ae5e..fe3680fb 100644
--- a/src/io.cpp
+++ b/src/io.cpp
@@ -61,6 +61,7 @@
#include "proj_constants.h"
#include "pj_wkt1_parser.h"
+#include "pj_wkt2_parser.h"
// PROJ include order is sensitive
// clang-format off
@@ -1782,6 +1783,12 @@ UnitOfMeasure WKTParser::Private::buildUnitInSubNode(const WKTNodeNNPtr &node,
return buildUnit(unitNode, UnitOfMeasure::Type::TIME);
}
}
+ {
+ auto &unitNode = nodeP->lookForChild(WKTConstants::TEMPORALQUANTITY);
+ if (!isNull(unitNode)) {
+ return buildUnit(unitNode, UnitOfMeasure::Type::TIME);
+ }
+ }
{
auto &unitNode = nodeP->lookForChild(WKTConstants::PARAMETRICUNIT);
@@ -4366,6 +4373,12 @@ BaseObjectNNPtr WKTParser::createFromWKT(const std::string &wkt) {
if (!errorMsg.empty()) {
d->emitRecoverableAssertion(errorMsg);
}
+ } else if (dialect == WKTGuessedDialect::WKT2_2015 ||
+ dialect == WKTGuessedDialect::WKT2_2018) {
+ auto errorMsg = pj_wkt2_parse(wkt);
+ if (!errorMsg.empty()) {
+ d->emitRecoverableAssertion(errorMsg);
+ }
}
return obj;