aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/operation/coordinateoperationfactory.cpp
AgeCommit message (Collapse)Author
2022-03-19Merge pull request #3123 from rouault/fix_compound_crs_nad83_csrsEven Rouault
createOperations(): fix transformation involving CompoundCRS, ToWGS84 and PROJ4_GRIDS
2022-02-22geog3DToVertTryThroughGeog2D(): avoid potential nullptr deref (CID 383355)Even Rouault
2022-02-14Better deal with importing strings like '+init=epsg:XXXX +over' (refs ↵Even Rouault
MapServer/MapServer#6478)
2021-12-08createOperations(): improvement for "NAD83(CSRS) + CGVD28 height" to ↵Even Rouault
"NAD83(CSRS) + CGVD2013(CGG2013) height" That transformation involves doing CGVD28 height to CGVD2013(CGG2013) height by doing: - CGVD28 height to NAD83(CSRS): EPSG registered operation - NAD83(CSRS) to CGVD2013(CGG2013) height by doing: * NAD83(CSRS) to NAD83(CSRS)v6: ballpark * NAD83(CSRS)v6 to CGVD2013(CGG2013): EPSG registered operation
2021-11-15createOperationsGeogToGeog(): avoid potential harmless floating-point ↵Even Rouault
division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41045
2021-11-14Merge pull request #2938 from rouault/fix_ossfuzz_40955Even Rouault
createOperationsCompoundToCompound(): fix null pointer dereference when connection to proj.db doesn't exist.
2021-11-12createOperationsCompoundToCompound(): fix null pointer dereference when ↵Even Rouault
connection to proj.db doesn't exist. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40955
2021-11-11createOperations(): do not stop at the first operation in the PROJ namespace ↵Even Rouault
for vertical transformations In particular helps with transformation between "NAD83 + NAVD88 height" and WGS 84 that have regressed in 8.2.0 Fixes #2936
2021-10-16createOperations(): avoid harmless floating-point division by zero if ↵Even Rouault
conversion factor of target unit is 0. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39969
2021-09-15Database: update to EPSG v10.035Even Rouault
This seriously impacts French CRS users with the introduction of new datums, geodetic CRS and projected CRS based on "RGF 93 v2" and "RGF 93 v2b", and the previous single "RGF 93" being renamed as "RGF 93 v1". To be noted too, the addition of a null transformation between NAD83(2011) and WGS 84, which impacts a number of tests in the test suite.
2021-09-08createOperations(): use an explicit conversion operation for geodetic <--> ↵Even Rouault
geocentric latitude
2021-09-08createOperations(): deal with spherical planetocentric geodetic CRSEven Rouault
This also fixes conversion between geocentric latlong and geodetic latlong with cs2cs. This was dealt with in PR 1093, but in the wrong direction (the geocentric latitude must be <= in absolute value to the geodetic one) The issue here was linked to the semantics of the +geoc specifier, which affects the semantics of the input coordinates in the forward direction (+geoc means that the input coordinate is is a geocentric latitude), which defeats the logic of doing A to B by using the inverse path of A and the forward path of B.
2021-08-16createOperations(): fix missing deg<-->rad conversion when transforming with ↵Even Rouault
a CRS that has a fallback-to-PROJ4-string behaviour and is a BoundCRS of a GeographicCRS (fixes #2804)
2021-07-20createOperations(): fix SourceTargetCRSExtentUse::NONE modeEven Rouault
Fix issue reported in https://lists.osgeo.org/pipermail/proj/2021-July/010318.html
2021-07-07createOperations(): make sure to associate an extent to the transform of a ↵Even Rouault
CRS with a GEOIDMODEL using a PROJ grid, so that it is later used instead of a ballpark operation (fixes #2768)
2021-05-04DOC: configure and add spelling wordlist; fix typos, apply Sphinx syntax (#2705)Mike Taves
2021-04-23Database: update to EPSG v10.019Even Rouault
Non-trivial updates: - some vertical CRS are now encoded as DerivedVerticalCRS. e.g EPSG:8228 "NAVD88 height (ft)", with base EPSG:5703 "NAVD88 height". As we don't have support in our PROJ db model for DerivedVerticalCRS, modify the import script to 'resolve' the derivation up to the original datum. - Method EPSG:1069 'Change of Vertical Unit' is no longer used. It is replaced by a generic-purpose EPSG:1104 method that doesn't take any conversion factor. And generic conversions EPSG:7812 and EPSG:7813 are now used in concatenated operations, which require code changes as well.
2021-04-05createOperations(): make ↵Even Rouault
createBetweenGeodeticCRSWithDatumBasedIntermediates() reachable... ... and optimize its execution time by rewriting it completely. This code path was no longer triggered in tests since EPSG got a direct transformation for GDA94 to WGS 84 (G1762).
2021-03-20createOperations(): fix regression for the fix of #2588Even Rouault
Issue spotted by GDAL autotest suite.
2021-03-20createOperations(): fix Compound to Geog3D CRS computations in the case... ↵Even Rouault
(fixes #2588) when the source and target CRS share the same geog CRS, but the interpolation CRS of the vertical transformation isn't the same, and a Helmert transformation exists between them... For example, for "CH1903+ + EGM96" to CH1903+ 3D where the interpolation CRS is WGS84.
2021-03-13typo fix in commentEven Rouault
2021-03-07typo fixesEven Rouault
2021-03-06Fix gcc 11 -Wnonnull warningsEven Rouault
``` /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp: In function 'osgeo::proj::operation::TransformationNNPtr osgeo::proj::operation::createBallparkGeographicOffset(const CRSNNPtr&, const CRSNNPtr&, const DatabaseContextPtr&)': /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1860:36: warning: 'this' pointer is null [-Wnonnull] 1860 | ->coordinateSystem() | ^ In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35: /proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr& osgeo::proj::crs::SingleCRS::coordinateSystem() const' 196 | PROJ_DLL const cs::CoordinateSystemNNPtr &coordinateSystem() PROJ_PURE_DECL; | ^~~~~~~~~~~~~~~~ /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1864:36: warning: 'this' pointer is null [-Wnonnull] 1864 | ->coordinateSystem() | ^ In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35: /proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr& osgeo::proj::crs::SingleCRS::coordinateSystem() const' 196 | PROJ_DLL const cs::CoordinateSystemNNPtr &coordinateSystem() PROJ_PURE_DECL; | ^~~~~~~~~~~~~~~~ /proj-8.0.0/src/iso19111/factory.cpp: In member function 'std::vector<dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::operation::CoordinateOperation> > > osgeo::proj::io::AuthorityFactory::createBetweenGeodeticCRSWithDatumBasedIntermediates(const CRSNNPtr&, const string&, const string&, const CRSNNPtr&, const string&, const string&, bool, bool, bool, bool, const std::vector<std::__cxx11::basic_string<char> >&, const ExtentPtr&, const ExtentPtr&) const': /proj-8.0.0/src/iso19111/factory.cpp:4724:66: warning: 'this' pointer is null [-Wnonnull] 4724 | dynamic_cast<crs::GeodeticCRS *>(sourceCRS.get())->datum(); | ^ In file included from /proj-8.0.0/src/iso19111/factory.cpp:36: /proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr& osgeo::proj::crs::GeodeticCRS::datum() const' 254 | PROJ_DLL const datum::GeodeticReferenceFramePtr &datum() PROJ_PURE_DECL; | ^~~~~ /proj-8.0.0/src/iso19111/factory.cpp:4726:66: warning: 'this' pointer is null [-Wnonnull] 4726 | dynamic_cast<crs::GeodeticCRS *>(targetCRS.get())->datum(); | ^ In file included from /proj-8.0.0/src/iso19111/factory.cpp:36: /proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr& osgeo::proj::crs::GeodeticCRS::datum() const' 254 | PROJ_DLL const datum::GeodeticReferenceFramePtr &datum() PROJ_PURE_DECL; | ^~~~~ ```
2021-03-05createOperations(): fix incorrect height transformation between 3D promoted ↵Even Rouault
RGF93 and CH1903+ (fixes #2541)
2021-03-03Reformat code with clang-format-10 from ubuntu 20.04Even Rouault
2021-02-09createOperations(): remove involved logic that was done for GDA94 -> WGS84 ↵Even Rouault
(G1762) It is no longer needed for that particular case, since there's now a concatenated operation for it. It could in theory be useful for other cases, but removing it doesn't break existing tests, so...
2021-01-14createOperations(): fix bug involving geoidmodel and non-metre vertical unitEven Rouault
2021-01-13createOperations(): fix Compound to Geog3D/Projected3D CRS with non-metre ↵Even Rouault
ellipsoidal height
2020-12-14createOperations(): fix inconsistent chaining exception when transforming ↵Even Rouault
from BoundCRS of projected CRS based on NTF Paris to BoundCRS of geog CRS NTF Paris. Fixes https://github.com/OSGeo/gdal/issues/3273
2020-12-12Split coordinateoperation.cpp in many files in iso19111/operation directoryEven Rouault
The big size of coordinateoperation.cpp could require significant amount of RAM to build it with -O2 level, and cause compiler crashes in some environments.