diff options
| author | Kristian Evers <kristianevers@gmail.com> | 2020-01-23 20:30:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-23 20:30:53 +0100 |
| commit | df4f78a8c1ea3c08f0b32c061b38b40c4a2d9f60 (patch) | |
| tree | 4dd7a39f96d5c5d4d32ffcc769cc01c79ed688bf /src | |
| parent | 1ca02b5659bced7036f345803a1c981c5ced9690 (diff) | |
| parent | b6db297c5a7c78727bd27978b8022cb21bdae999 (diff) | |
| download | PROJ-df4f78a8c1ea3c08f0b32c061b38b40c4a2d9f60.tar.gz PROJ-df4f78a8c1ea3c08f0b32c061b38b40c4a2d9f60.zip | |
Merge pull request #1873 from rouault/fix_wrong_use_of_derivingConversion
Fix wrong use of derivingConversionRef() that caused GDAL bug
Diffstat (limited to 'src')
| -rw-r--r-- | src/iso19111/c_api.cpp | 2 | ||||
| -rw-r--r-- | src/iso19111/factory.cpp | 9 | ||||
| -rw-r--r-- | src/iso19111/io.cpp | 2 |
3 files changed, 6 insertions, 7 deletions
diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 4c98af3d..67050725 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -3574,7 +3574,7 @@ PJ *proj_crs_create_projected_3D_crs_from_2D(PJ_CONTEXT *ctx, crs_name ? crs_name : cpp_projected_2D_crs->nameStr().c_str()), NN_NO_CHECK(cpp_geog_3D_CRS), - cpp_projected_2D_crs->derivingConversionRef(), newCS)); + cpp_projected_2D_crs->derivingConversion(), newCS)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); if (ctx->cpp_context) { diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 7d15172e..2a4ad3e8 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -2497,7 +2497,7 @@ AuthorityFactory::createProjectedCRS(const std::string &code) const { pj_add_type_crs_if_needed(text_definition), d->context()); auto projCRS = dynamic_cast<const crs::ProjectedCRS *>(obj.get()); if (projCRS) { - const auto &conv = projCRS->derivingConversionRef(); + const auto conv = projCRS->derivingConversion(); auto newConv = (conv->nameStr() == "unnamed") ? operation::Conversion::create( @@ -2518,10 +2518,9 @@ AuthorityFactory::createProjectedCRS(const std::string &code) const { boundCRS->baseCRS().get()); if (projCRS) { auto newBoundCRS = crs::BoundCRS::create( - crs::ProjectedCRS::create( - props, projCRS->baseCRS(), - projCRS->derivingConversionRef(), - projCRS->coordinateSystem()), + crs::ProjectedCRS::create(props, projCRS->baseCRS(), + projCRS->derivingConversion(), + projCRS->coordinateSystem()), boundCRS->hubCRS(), boundCRS->transformation()); return NN_NO_CHECK( util::nn_dynamic_pointer_cast<crs::ProjectedCRS>( diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index c013ce24..d88581b4 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -9059,7 +9059,7 @@ PROJStringParser::createFromPROJString(const std::string &projString) { auto projCRS = dynamic_cast<ProjectedCRS *>(crs); if (projCRS) { // Override with easting northing order - const auto &conv = projCRS->derivingConversionRef(); + const auto conv = projCRS->derivingConversion(); if (conv->method()->getEPSGCode() != EPSG_CODE_METHOD_TRANSVERSE_MERCATOR_SOUTH_ORIENTATED) { return ProjectedCRS::create( |
