aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/crs.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2022-02-22 20:51:05 +0100
committerGitHub <noreply@github.com>2022-02-22 20:51:05 +0100
commit5b7c4575e549d2765da39a9708a42fa6317926f1 (patch)
tree32ea9e79e558f0576170cc6fa85e693739b1e7ec /src/iso19111/crs.cpp
parentdd96597e86a0d4df1c6af0e32e1bb6bee1f840dd (diff)
parent27d6a335dba16a083f5ecf76e8ce8d6034bb130f (diff)
downloadPROJ-5b7c4575e549d2765da39a9708a42fa6317926f1.tar.gz
PROJ-5b7c4575e549d2765da39a9708a42fa6317926f1.zip
Merge pull request #3072 from rouault/coverity_scan
Fix various issues found by Coverity scan
Diffstat (limited to 'src/iso19111/crs.cpp')
-rw-r--r--src/iso19111/crs.cpp66
1 files changed, 33 insertions, 33 deletions
diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp
index 4750896a..881aec0b 100644
--- a/src/iso19111/crs.cpp
+++ b/src/iso19111/crs.cpp
@@ -4059,50 +4059,50 @@ void ProjectedCRS::_exportToWKT(io::WKTFormatter *formatter) const {
if (found)
l_esri_name = l_name;
}
- }
- if (!isWKT2 && formatter->useESRIDialect() && !l_identifiers.empty() &&
- *(l_identifiers[0]->codeSpace()) == "ESRI" && dbContext) {
- try {
- const auto definition = dbContext->getTextDefinition(
- "projected_crs", "ESRI", l_identifiers[0]->code());
- if (starts_with(definition, "PROJCS")) {
- auto crsFromFromDef = io::WKTParser()
- .attachDatabaseContext(dbContext)
- .createFromWKT(definition);
- if (_isEquivalentTo(
- dynamic_cast<IComparable *>(crsFromFromDef.get()),
- util::IComparable::Criterion::EQUIVALENT)) {
- formatter->ingestWKTNode(
- io::WKTNode::createFrom(definition));
- return;
- }
- }
- } catch (const std::exception &) {
- }
- } else if (!isWKT2 && formatter->useESRIDialect() && !l_esri_name.empty()) {
- try {
- auto res =
- io::AuthorityFactory::create(NN_NO_CHECK(dbContext), "ESRI")
- ->createObjectsFromName(
- l_esri_name,
- {io::AuthorityFactory::ObjectType::PROJECTED_CRS},
- false);
- if (res.size() == 1) {
+ if (!isWKT2 && !l_identifiers.empty() &&
+ *(l_identifiers[0]->codeSpace()) == "ESRI") {
+ try {
const auto definition = dbContext->getTextDefinition(
- "projected_crs", "ESRI",
- res.front()->identifiers()[0]->code());
+ "projected_crs", "ESRI", l_identifiers[0]->code());
if (starts_with(definition, "PROJCS")) {
+ auto crsFromFromDef = io::WKTParser()
+ .attachDatabaseContext(dbContext)
+ .createFromWKT(definition);
if (_isEquivalentTo(
- dynamic_cast<IComparable *>(res.front().get()),
+ dynamic_cast<IComparable *>(crsFromFromDef.get()),
util::IComparable::Criterion::EQUIVALENT)) {
formatter->ingestWKTNode(
io::WKTNode::createFrom(definition));
return;
}
}
+ } catch (const std::exception &) {
+ }
+ } else if (!isWKT2 && !l_esri_name.empty()) {
+ try {
+ auto res =
+ io::AuthorityFactory::create(NN_NO_CHECK(dbContext), "ESRI")
+ ->createObjectsFromName(
+ l_esri_name,
+ {io::AuthorityFactory::ObjectType::PROJECTED_CRS},
+ false);
+ if (res.size() == 1) {
+ const auto definition = dbContext->getTextDefinition(
+ "projected_crs", "ESRI",
+ res.front()->identifiers()[0]->code());
+ if (starts_with(definition, "PROJCS")) {
+ if (_isEquivalentTo(
+ dynamic_cast<IComparable *>(res.front().get()),
+ util::IComparable::Criterion::EQUIVALENT)) {
+ formatter->ingestWKTNode(
+ io::WKTNode::createFrom(definition));
+ return;
+ }
+ }
+ }
+ } catch (const std::exception &) {
}
- } catch (const std::exception &) {
}
}