Skip to content

Conversation

@rouault
Copy link
Member

@rouault rouault commented Feb 8, 2026

  • proj_factors(): make it work with derived projected CRS
  • Add proj_create_linear_affine_parametric_conversion(), proj_create_derived_projected_crs(), proj_crs_add_horizontal_derived_conversion()

@rouault rouault added this to the 9.8.0 milestone Feb 8, 2026
@rouault rouault force-pushed the derived_projcrs_improvements branch from 3741e45 to 1ef8e75 Compare February 8, 2026 23:23
" PARAMETER[\"B2\",3.2811679790026242,\n"
" SCALEUNIT[\"coefficient\",1],\n"
" ID[\"EPSG\",8641]]],\n"
" CS[Cartesian,2],\n"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As we know, in an "Affine parametric transformation" the axis order in the WKT is considered in a strange way.
What happens with a northing-easting system? And when A2 or B1 have non-zero values?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens with a northing-easting system?

That PR doesn't change this behaviour. The axis order of the coordinate system of the derived projected CRS doesn't influence the computation. The CS of the derived projected CRS is mostly informative

And when A2 or B1 have non-zero values?

well just as documented:

  • value of the first axis of the derived CRS = A0 + value of first axis of base CRS * A1 + value of second axis of base CRS * A2
  • value of the second axis of the derived CRS = B0 + value of first axis of base CRS * B1 + value of second axis of base CRS * B2

const PJ *conversion,
const PJ *coordinate_system);

PJ PROJ_DLL *proj_create_derived_projected_crs(PJ_CONTEXT *ctx,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do these changes behave with proj_normalize_for_visualization?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From what I can see, CRS::normalizeForVisualization() does act on a DerivedProjectedCRS, but I don't think that currently it has any effect on changing actual coordinate values.

@rouault rouault force-pushed the derived_projcrs_improvements branch 2 times, most recently from 93f3dd5 to d63fe77 Compare February 9, 2026 20:36
…rived_projected_crs(), proj_crs_add_horizontal_derived_conversion()
@rouault rouault force-pushed the derived_projcrs_improvements branch from d63fe77 to 757c840 Compare February 10, 2026 18:26
@rouault rouault merged commit 7cafc22 into OSGeo:master Feb 11, 2026
30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants