aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2020-01-23 20:30:53 +0100
committerGitHub <noreply@github.com>2020-01-23 20:30:53 +0100
commitdf4f78a8c1ea3c08f0b32c061b38b40c4a2d9f60 (patch)
tree4dd7a39f96d5c5d4d32ffcc769cc01c79ed688bf /src
parent1ca02b5659bced7036f345803a1c981c5ced9690 (diff)
parentb6db297c5a7c78727bd27978b8022cb21bdae999 (diff)
downloadPROJ-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.cpp2
-rw-r--r--src/iso19111/factory.cpp9
-rw-r--r--src/iso19111/io.cpp2
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(