From ec4b1747f706d58e47290f2b80a7127a9f65f1b5 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 9 Mar 2022 11:35:35 +0100 Subject: Merge pull request #3098 from rouault/fix_gdal_5408 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix issue when transforming from/to BoundCRS of 3D CRS with non-Green… --- src/iso19111/io.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'src/iso19111/io.cpp') diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index b7f26fe5..d4c6aec1 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -4341,10 +4341,10 @@ createBoundCRSSourceTransformationCRS(const crs::CRSPtr &sourceCRS, sourceCRS->extractGeographicCRS(); sourceTransformationCRS = sourceGeographicCRS; if (sourceGeographicCRS) { - if (sourceGeographicCRS->datum() != nullptr && - sourceGeographicCRS->primeMeridian() - ->longitude() - .getSIValue() != 0.0) { + const auto &sourceDatum = sourceGeographicCRS->datum(); + if (sourceDatum != nullptr && sourceGeographicCRS->primeMeridian() + ->longitude() + .getSIValue() != 0.0) { sourceTransformationCRS = GeographicCRS::create( util::PropertyMap().set( @@ -4354,13 +4354,12 @@ createBoundCRSSourceTransformationCRS(const crs::CRSPtr &sourceCRS, datum::GeodeticReferenceFrame::create( util::PropertyMap().set( common::IdentifiedObject::NAME_KEY, - sourceGeographicCRS->datum()->nameStr() + + sourceDatum->nameStr() + " (with Greenwich prime meridian)"), - sourceGeographicCRS->datum()->ellipsoid(), + sourceDatum->ellipsoid(), util::optional(), datum::PrimeMeridian::GREENWICH), - cs::EllipsoidalCS::createLatitudeLongitude( - common::UnitOfMeasure::DEGREE)) + sourceGeographicCRS->coordinateSystem()) .as_nullable(); } } else { -- cgit v1.2.3