Skip to content

Commit

Permalink
Merge 7e11eda into 8ff49e2
Browse files Browse the repository at this point in the history
  • Loading branch information
rouault committed Jan 22, 2019
2 parents 8ff49e2 + 7e11eda commit 4d826e0
Show file tree
Hide file tree
Showing 9 changed files with 349 additions and 171 deletions.
3 changes: 3 additions & 0 deletions include/proj/io.hpp
Expand Up @@ -422,6 +422,9 @@ class PROJ_GCC_DLL PROJStringFormatter {
PROJ_INTERNAL void setOmitZUnitConversion(bool omit);
PROJ_INTERNAL bool omitZUnitConversion() const;

PROJ_INTERNAL void setDropEarlyBindingsTerms(bool drop);
PROJ_INTERNAL bool getDropEarlyBindingsTerms() const;

PROJ_INTERNAL const DatabaseContextPtr &databaseContext() const;

PROJ_INTERNAL Convention convention() const;
Expand Down
7 changes: 5 additions & 2 deletions src/4D_api.cpp
Expand Up @@ -494,6 +494,9 @@ Returns 1 on success, 0 on failure
/* Swap axes? */
p = pj_param_exists (P->params, "axis");

const bool disable_grid_presence_check = pj_param_exists (
P->params, "disable_grid_presence_check") != nullptr;

/* Don't axisswap if data are already in "enu" order */
if (p && (0!=strcmp ("enu", p->param))) {
char *def = static_cast<char*>(malloc (100+strlen(P->axis)));
Expand All @@ -509,7 +512,7 @@ Returns 1 on success, 0 on failure

/* Geoid grid(s) given? */
p = pj_param_exists (P->params, "geoidgrids");
if (p && strlen (p->param) > strlen ("geoidgrids=")) {
if (!disable_grid_presence_check && p && strlen (p->param) > strlen ("geoidgrids=")) {
char *gridnames = p->param + strlen ("geoidgrids=");
char *def = static_cast<char*>(malloc (100+2*strlen(gridnames)));
if (nullptr==def)
Expand All @@ -525,7 +528,7 @@ Returns 1 on success, 0 on failure

/* Datum shift grid(s) given? */
p = pj_param_exists (P->params, "nadgrids");
if (p && strlen (p->param) > strlen ("nadgrids=")) {
if (!disable_grid_presence_check && p && strlen (p->param) > strlen ("nadgrids=")) {
char *gridnames = p->param + strlen ("nadgrids=");
char *def = static_cast<char*>(malloc (100+2*strlen(gridnames)));
if (nullptr==def)
Expand Down
3 changes: 1 addition & 2 deletions src/iso19111/common.cpp
Expand Up @@ -1122,8 +1122,7 @@ struct DataEpoch::Private {

// ---------------------------------------------------------------------------

DataEpoch::DataEpoch()
: d(internal::make_unique<Private>(Measure())) {}
DataEpoch::DataEpoch() : d(internal::make_unique<Private>(Measure())) {}

// ---------------------------------------------------------------------------

Expand Down
1 change: 1 addition & 0 deletions src/iso19111/coordinateoperation.cpp
Expand Up @@ -11100,6 +11100,7 @@ CoordinateOperationFactory::Private::createOperations(
}
auto projFormatter = io::PROJStringFormatter::create();
projFormatter->setCRSExport(true);
projFormatter->setDropEarlyBindingsTerms(true);
projFormatter->startInversion();
sourceProjExportable->_exportToPROJString(projFormatter.get());
auto geogSrc =
Expand Down
7 changes: 6 additions & 1 deletion src/iso19111/crs.cpp
Expand Up @@ -1209,7 +1209,7 @@ void GeodeticCRS::addDatumInfoToPROJString(
const auto &nadgrids = formatter->getHDatumExtension();
const auto &l_datum = datum();
if (formatter->getCRSExport() && l_datum && TOWGS84Params.empty() &&
nadgrids.empty()) {
nadgrids.empty() && !formatter->getDropEarlyBindingsTerms()) {
if (l_datum->_isEquivalentTo(
datum::GeodeticReferenceFrame::EPSG_6326.get(),
util::IComparable::Criterion::EQUIVALENT)) {
Expand Down Expand Up @@ -3766,6 +3766,11 @@ void BoundCRS::_exportToPROJString(
"baseCRS of BoundCRS cannot be exported as a PROJ string");
}

if (formatter->getDropEarlyBindingsTerms()) {
crs_exportable->_exportToPROJString(formatter);
return;
}

auto vdatumProj4GridName = getVDatumPROJ4GRIDS();
if (!vdatumProj4GridName.empty()) {
formatter->setVDatumExtension(vdatumProj4GridName);
Expand Down

0 comments on commit 4d826e0

Please sign in to comment.