forked from OSGeo/PROJ
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Database: add an optional step_direction column to the concatenated_o…
…peration_step table and consequently bump database version structure to 1.5 Building a concatenated operation from its steps is a incredibly complex logic, which requires: - figuring out in which direction the step must be actually run - set source/target CRS on conversions, that natively lack it, by propagating. This is done by propagating CRS from the neighbouring steps... when this is possible. If you chain directly too many conversions, we'll lack the information at some point. Hopefully for records we have, this is mostly just a theoretical concern (I believe, not totally sure...) All that is to satisfy consistency checks, that check that target_crs[op[n]] == source_crs[op[n+1]]. Although in some cases we do need to access the CRS. Typically for a map projection to know the ellipsoid shape. So the alternative would be to attach the ellipsoid shape as a parameter of a map projection (the good old +ellps parameter of PROJ.4 strings) rather than relying on the one of the base geographic CRS. - sometimes insert an implicit Geographic<-->Geocentric conversion step - other things I might not even suspect. This change tries to slightly improve this by addressing the first issue mentioned - figuring out the direction - by adding a step_direction column to the concatenated_operation_step table. Obviously as currently the EPSG dataset doesn't include such information (CC @RogerLott with which I've recently discussed that issue), we must still allow a NULL value to mean unknown. For the few records we maintain under our PROJ authority, we can define it though. At least, this improves a bit the readability of our records. While writing all this, and recalling code I had to write in past years in the pipeline inference logic that need to synthetize intermediate CRS, I'm strongly thinking to what you mentionned @busstoptaktik about the limitations of the current model... Requiring that operation steps have a CRS is a major practical annoyance.
- Loading branch information
Showing
19 changed files
with
796 additions
and
748 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.