Skip to content

Commit 6b5b72e

Browse files
committed
proj_normalize_for_visualization: check other left-handed orders, not only N-E
1 parent 1ab9dfc commit 6b5b72e

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

src/iso19111/crs.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -870,8 +870,14 @@ static bool mustAxisOrderBeSwitchedForVisualizationInternal(
870870
const std::vector<cs::CoordinateSystemAxisNNPtr> &axisList) {
871871
const auto &dir0 = axisList[0]->direction();
872872
const auto &dir1 = axisList[1]->direction();
873-
if (&dir0 == &cs::AxisDirection::NORTH &&
874-
&dir1 == &cs::AxisDirection::EAST) {
873+
if ((&dir0 == &cs::AxisDirection::NORTH &&
874+
&dir1 == &cs::AxisDirection::EAST) ||
875+
(&dir0 == &cs::AxisDirection::EAST &&
876+
&dir1 == &cs::AxisDirection::SOUTH) ||
877+
(&dir0 == &cs::AxisDirection::SOUTH &&
878+
&dir1 == &cs::AxisDirection::WEST) ||
879+
(&dir0 == &cs::AxisDirection::WEST &&
880+
&dir1 == &cs::AxisDirection::NORTH)) {
875881
return true;
876882
}
877883

test/unit/test_c_api.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4456,6 +4456,29 @@ TEST_F(CApi, proj_normalize_for_visualization_on_crs) {
44564456

44574457
// ---------------------------------------------------------------------------
44584458

4459+
TEST_F(CApi, proj_normalize_for_visualization_on_crs_westing_southing) {
4460+
4461+
auto P = proj_create(m_ctxt, "EPSG:5513");
4462+
ObjectKeeper keeper_P(P);
4463+
ASSERT_NE(P, nullptr);
4464+
auto Pnormalized = proj_normalize_for_visualization(m_ctxt, P);
4465+
ObjectKeeper keeper_Pnormalized(Pnormalized);
4466+
ASSERT_NE(Pnormalized, nullptr);
4467+
EXPECT_EQ(proj_get_id_code(Pnormalized, 0), nullptr);
4468+
4469+
auto cs = proj_crs_get_coordinate_system(m_ctxt, Pnormalized);
4470+
ASSERT_NE(cs, nullptr);
4471+
ObjectKeeper keeperCs(cs);
4472+
4473+
const char *name = nullptr;
4474+
ASSERT_TRUE(proj_cs_get_axis_info(m_ctxt, cs, 0, &name, nullptr, nullptr,
4475+
nullptr, nullptr, nullptr, nullptr));
4476+
ASSERT_NE(name, nullptr);
4477+
EXPECT_EQ(std::string(name), "Westing");
4478+
}
4479+
4480+
// ---------------------------------------------------------------------------
4481+
44594482
TEST_F(CApi, proj_coordoperation_create_inverse) {
44604483

44614484
auto P = proj_create(

0 commit comments

Comments
 (0)