diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2018-12-03 16:54:31 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2018-12-03 16:54:31 +0100 |
| commit | ac24807d189e2deea969656a229aad7a8c1236c6 (patch) | |
| tree | 1929209587fd95fc6d14d7a674205af2386b56e7 /src/projinfo.cpp | |
| parent | ba111ac8323ff194039a06db87d1fb17ed8175b3 (diff) | |
| download | PROJ-ac24807d189e2deea969656a229aad7a8c1236c6.tar.gz PROJ-ac24807d189e2deea969656a229aad7a8c1236c6.zip | |
projinfo: output operation summary, even in non summary mode (refs #1188)
Diffstat (limited to 'src/projinfo.cpp')
| -rw-r--r-- | src/projinfo.cpp | 88 |
1 files changed, 48 insertions, 40 deletions
diff --git a/src/projinfo.cpp b/src/projinfo.cpp index 7acb13af..5f580a6f 100644 --- a/src/projinfo.cpp +++ b/src/projinfo.cpp @@ -422,6 +422,51 @@ static void outputObject(DatabaseContextPtr dbContext, BaseObjectNNPtr obj, // --------------------------------------------------------------------------- +static void outputOperationSummary(const CoordinateOperationNNPtr &op) { + auto ids = op->identifiers(); + if (!ids.empty()) { + std::cout << *(ids[0]->codeSpace()) << ":" << ids[0]->code(); + } else { + std::cout << "unknown id"; + } + + std::cout << ", "; + + auto name = op->nameStr(); + if (!name.empty()) { + std::cout << name; + } else { + std::cout << "unknown name"; + } + + std::cout << ", "; + + auto accuracies = op->coordinateOperationAccuracies(); + if (!accuracies.empty()) { + std::cout << accuracies[0]->value() << " m"; + } else { + if (std::dynamic_pointer_cast<Conversion>(op.as_nullable())) { + std::cout << "0 m"; + } else { + std::cout << "unknown accuracy"; + } + } + + std::cout << ", "; + + auto domains = op->domains(); + if (!domains.empty() && domains[0]->domainOfValidity() && + domains[0]->domainOfValidity()->description().has_value()) { + std::cout << *(domains[0]->domainOfValidity()->description()); + } else { + std::cout << "unknown domain of validity"; + } + + std::cout << std::endl; +} + +// --------------------------------------------------------------------------- + static void outputOperations( DatabaseContextPtr dbContext, const std::string &sourceCRSStr, const std::string &targetCRSStr, const ExtentPtr &bboxFilter, @@ -477,46 +522,7 @@ static void outputOperations( if (summary) { std::cout << "Candidate operations found: " << list.size() << std::endl; for (const auto &op : list) { - auto ids = op->identifiers(); - if (!ids.empty()) { - std::cout << *(ids[0]->codeSpace()) << ":" << ids[0]->code(); - } else { - std::cout << "unknown id"; - } - - std::cout << ", "; - - auto name = op->nameStr(); - if (!name.empty()) { - std::cout << name; - } else { - std::cout << "unknown name"; - } - - std::cout << ", "; - - auto accuracies = op->coordinateOperationAccuracies(); - if (!accuracies.empty()) { - std::cout << accuracies[0]->value() << " m"; - } else { - if (std::dynamic_pointer_cast<Conversion>(op.as_nullable())) { - std::cout << "0 m"; - } else { - std::cout << "unknown accuracy"; - } - } - - std::cout << ", "; - - auto domains = op->domains(); - if (!domains.empty() && domains[0]->domainOfValidity() && - domains[0]->domainOfValidity()->description().has_value()) { - std::cout << *(domains[0]->domainOfValidity()->description()); - } else { - std::cout << "unknown domain of validity"; - } - - std::cout << std::endl; + outputOperationSummary(op); } } else { bool first = true; @@ -534,6 +540,8 @@ static void outputOperations( << (i + 1) << ":" << std::endl << std::endl; } + outputOperationSummary(op); + std::cout << std::endl; outputObject(dbContext, op, outputOpt); } } |
