aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/crs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/iso19111/crs.cpp')
-rw-r--r--src/iso19111/crs.cpp22
1 files changed, 15 insertions, 7 deletions
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;