From 590449950057566d39e2997404422b00844343b6 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 3 Jun 2020 14:09:01 +0200 Subject: normalizeForVisualization(): make it switch axis for EPSG:5482 (RSRGD2000 / RSPS2000) Fixes #2254 --- src/iso19111/crs.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp index b0ec35b9..88420c8a 100644 --- a/src/iso19111/crs.cpp +++ b/src/iso19111/crs.cpp @@ -662,18 +662,26 @@ static bool mustAxisOrderBeSwitchedForVisualizationInternal( 90.0) < 1e-10; } - // Address EPSG:32761 "WGS 84 / UPS South (N,E)" if (&dir0 == &cs::AxisDirection::NORTH && &dir1 == &cs::AxisDirection::NORTH) { const auto &meridian0 = axisList[0]->meridian(); const auto &meridian1 = axisList[1]->meridian(); return meridian0 != nullptr && meridian1 != nullptr && - std::abs(meridian0->longitude().convertToUnit( - common::UnitOfMeasure::DEGREE) - - 0.0) < 1e-10 && - std::abs(meridian1->longitude().convertToUnit( - common::UnitOfMeasure::DEGREE) - - 90.0) < 1e-10; + (( + // Address EPSG:32761 "WGS 84 / UPS South (N,E)" + std::abs(meridian0->longitude().convertToUnit( + common::UnitOfMeasure::DEGREE) - + 0.0) < 1e-10 && + std::abs(meridian1->longitude().convertToUnit( + common::UnitOfMeasure::DEGREE) - + 90.0) < 1e-10) || + // Address EPSG:5482 "RSRGD2000 / RSPS2000" + (std::abs(meridian0->longitude().convertToUnit( + common::UnitOfMeasure::DEGREE) - + 180) < 1e-10 && + std::abs(meridian1->longitude().convertToUnit( + common::UnitOfMeasure::DEGREE) - + -90.0) < 1e-10)); } return false; -- cgit v1.2.3