aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111
AgeCommit message (Collapse)Author
2022-03-19Fix datum names when importing from PROJ4 crs strings (affects some ↵Even Rouault
transformations using geoidgrids) When importing from a PROJ4 string with +towgs84, +nadgrids or +geoidgrids terms, the datum name was just set to 'unknown'. So for example the datums of '+proj=longlat +ellps=GRS80 +towgs84=1,2,3' and '+proj=longlat +ellps=GRS80 +towgs84=4,5,6' were considered identical, because they had the same name 'unknown' and used the same ellipsoid. This affected the transformation of such CRS when they had an additional +geoidgrids term, which resulted in an erroneous +proj=push +v_1 +v_2 step to be added to preserve the horizontal coordinates.
2022-03-18createOperations(): fix transformation involving CompoundCRS, ToWGS84 and ↵Even Rouault
PROJ4_GRIDS Fix issue reported in https://lists.osgeo.org/pipermail/gdal-dev/2022-March/055587.html
2022-03-18SingleCRS::baseIsEquivalentTo(): fix potential crash that is triggered by ↵Even Rouault
fdf5111a9a790926aacec75a07d30508a8ed9c91 changes
2022-03-17Merge pull request #3119 from rouault/compound_to_2D_crsEven Rouault
Transformation: no longer do vertical trasnformation when doing compound CRS to 2D CRS / add --3d to cs2cs
2022-03-16Transformation: no longer do vertical trasnformation when doing compound CRS ↵Even Rouault
to 2D CRS / add --3d to cs2cs Previously, when computing transformation between a compound CRS and a geographic/projected 2D CRS, the behaviour was similar to implicitly promoting the 2D CRS to 3D CRS in the pipeline computation logic, hence a geoid model could be applied. But note that when doing a geographic 3D to geographic/projected 2D CRS transformation, we *did* not do this implicit promotion and if a Helmert transformation existed between the datums, it was done only in 2D. So this is a bit inconsistent and triggered the comment in https://github.com/OSGeo/PROJ/issues/2318#issuecomment-1068924513 With this commit, we no longer do any vertical transformation when doing compound CRS to the 2D CRS, but just take the transformation of the horizontal part of the compound CRS to the 2D CRS. Said otherwise, NAD83+NAVD88 to NAD83 will no longer lead to the application of the geoid model. Unless you explicitly ask for the promotion NAD83 to 3D. Also related, in https://github.com/OSGeo/PROJ/issues/1563 that went to 6.3.0, I changed cs2cs to automatically promote to 3D the CRS as soon as one of them was compound, for the sake of being consistent with the past behaviour. But it then becomes difficult to predict PROJ behaviour depending on which level of it you consider... This commit undoes that and adds an explicit --3d switch to cs2cs, similarly to projinfo, to ask for promotion. Other bug fix found in the process, when using legacy syntax, +init=epsg:4979, (WGS 84 3D), the resulting CRS was 2D and not 3D.
2022-03-16Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrameEven Rouault
If comparing a DynamicGeodeticReferenceFrame object and its export to WKT1, which is a simple DATUM object, currently in non-strict comparison mode, we'd consider the datum to be equivalent to the dynamic datum, but not the reverse, which breaks the symmetric property of the isEquivalentTo() operation. So fix this, to consider both equivalent whatever the operand order. (in strict mode, the objects will be considered different of course) Spotted in the GDAL GeoTIFF CRS reader code: https://github.com/OSGeo/gdal/blob/f9d48bdcc8c90df20e53b5af5785f1e5d78910db/frmts/gtiff/gt_wkt_srs.cpp#L832 Do same change for vertical datum vs dynamic vertical datum.
2022-03-09createOperations(): fix issue in transformation northing,easting projected ↵Even Rouault
CRS -> +proj=longlat +lon_wrap (fixes #3095)
2022-03-09PROJBasedOperation PROJJSON export: issues an empty 'parameters' array if ↵Even Rouault
needed (refs #3076)
2022-03-09Fix import of WKT of concatenated operation with inverse conversion of a ↵Even Rouault
compound CRS of a projected CRS (fixes #3076)
2022-03-08Fix issue when transforming from/to BoundCRS of 3D CRS with non-Greenwhich ↵Even Rouault
prime meridian, created from WKT (fixes OSGeo/gdal#5408)
2022-03-06Fix wrong results with SQLite 3.38.0 (fixes #3077)Even Rouault
2022-02-22geog3DToVertTryThroughGeog2D(): avoid potential nullptr deref (CID 383355)Even Rouault
2022-02-22WKTParser::Private::buildProjectedCRS(): avoid potential nullptr deref (CID ↵Even Rouault
383362)
2022-02-22ProjectedCRS::_exportToWKT(): avoid false positive warning about nullptr ↵Even Rouault
deref (CID 383356)
2022-02-22UnitOfMeasure::operator=(UnitOfMeasure &&): avoid use of moved member (CID ↵Even Rouault
383358)
2022-02-14Fix importing CRS definition with +proj=peirce_q and +shape different from ↵Even Rouault
square or diamond. Follow-up of #3014. Fixes #3056. master only
2022-02-14Better deal with importing strings like '+init=epsg:XXXX +over' (refs ↵Even Rouault
MapServer/MapServer#6478)
2022-02-09createOperations(): fix transformations from/to a BoundCRS of a ↵Even Rouault
DerivedGeographicCRS coming from WKT
2022-02-04Set more precise error code for parsing errors in proj_create().Brendan Jurd
If proj_create() catches a ParsingException, and the error code hasn't otherwise been set internally, set the error code to PROJ_ERR_INVALID_OP_WRONG_SYNTAX instead of allowing it to default to the generic PROJ_ERR_OTHER. Ref #2529
2022-01-20lookForGridInfo(): make it work properly when passed the old PROJ nameEven Rouault
Fixes https://github.com/qgis/QGIS/issues/45470 That is, if the file for the old PROJ name is not found, but the file for the new PROJ name is found, then use the later for fullFilename and gridAvailable.
2022-01-12Conversion::_exportToPROJString(): fix potential crash introduced in recent ↵Even Rouault
commit. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43546
2022-01-12Merge pull request #3010 from rouault/fix_2739Even Rouault
Implement Geographic3D to Depth/Geog2D+Depth as used by ETRS89 to CD Norway depth
2022-01-11Merge pull request #3014 from rouault/fix_3011Even Rouault
peirce_q: rename +type parameter wrongly introduced in 8.2.1 to +shape (fixes #3011)
2022-01-09Minor cppcheck fixesEven Rouault
2022-01-07Map peirce_q to pseudo WKT2 and ESRI WKTEven Rouault
2022-01-07Merge pull request #3013 from rouault/fix_3012Even Rouault
proj_get_crs_info_list_from_database(): report PJ_TYPE_GEODETIC_CRS for IAU_2015 -ocentric geodetic CRS (fixes #3012)
2022-01-06proj_get_crs_info_list_from_database(): report PJ_TYPE_GEODETIC_CRS for ↵Even Rouault
IAU_2015 -ocentric geodetic CRS (fixes #3012)
2022-01-06Implement Geographic3D to Depth/Geog2D+Depth as used by ETRS89 to CD Norway ↵Even Rouault
depth Fixes #2739 Verified with example from IOGP Guidance Note 7-2 (ver 62, Dec 2021) page 169, with 38 = h_obs - D_obs = 50 - 12. $ echo 60.0015 4.9960 38 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:4937 EPSG:9883 60.0015 4.9960 5.8827 $ echo 60.0015 4.9960 38 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:4937 EPSG:4258+9672 60.0015 4.9960 5.8827 $ echo 60.0015 4.9960 5.8827 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:9883 EPSG:4937 60.0015 4.9960 38.0000 $ echo 60.0015 4.9960 5.8827 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:4258+9672 EPSG:4937 60.0015 4.9960 38.0000
2022-01-04Handle EPSG:1111 'Transverse Mercator (3D)' method (used in EPSG:10.044 by ↵Even Rouault
Projected 3D CRS EPSG:9895 'Luxembourg TM (3D)'
2022-01-04Fix doc generation with Doxygen 1.9.3Even Rouault
Since the update to Doxygen 1.9.3, doc generation was broken. With bisection of doxygen, it was found this was due to commit https://github.com/doxygen/doxygen/commit/ee8f3fb7a2ed74ee30ae3202707617e97f6641ff which makes Doxygen honour nested @cond . This revealed bad pairing of @cond / @endcond in our code, fixed by this commit.
2021-12-16WKT1 import: correctly deal with missing rectified_grid_angle parameterEven Rouault
by setting its value from the azimuth angle. and on export to PROJ.4 string do not emit a erroneous +gamma=0 when the parameter it is missing. Fixes https://lists.osgeo.org/pipermail/proj/2021-December/010475.html
2021-12-16WKTParser::Private::buildProjectionStandard(): minor cleanupEven Rouault
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-12-04Merge pull request #2968 from rouault/fix_ossfuzz_41462Even Rouault
Fix extremely long parsing time on hostile PROJ strings
2021-12-02PROJStringSyntaxParser(): make it use pj_trim_argc/argv to have similar ↵Even Rouault
tokenization/serialization in different code paths This avoids in particular recursive calls to ob_tran initialization on weird inputs. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41462
2021-12-02PROJ string parsing: fix unquoting of parameter values when the parameter ↵Even Rouault
name is just one single character Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41462
2021-12-01Cache result of proj_get_type() to help for performance of proj_factors() ↵Even Rouault
(fixes #2965)
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-11-09PROJStringFormatter::toString(): avoid invalid iterator increment (fixes #2931)Even Rouault
2021-11-09Reformatting fixesEven Rouault
2021-11-06Merge pull request #2926 from snowman2/warnEven Rouault
DOC: Add warning in proj_as_proj_string about potential information loss with CRS
2021-11-05DOC: Add warning in proj_as_proj_string about potential information loss ↵snowman2
with CRS
2021-11-05DOC: add available keys to proj_context_get_database_metadatasnowman2
2021-11-05Merge pull request #2921 from rouault/epsg_10_039Even Rouault
Database: update to EPSG v10.039
2021-11-04Remove useless PROJ_DLL uses in .cpp files (#2920)Momtchil Momtchev
2021-11-04Database: update to EPSG v10.039Even Rouault
2021-11-03BoundCRS WKT import: fix setting of nameEven Rouault
Name was erroneously set (since 8.2.0) to SOURCECRS. Raised in https://lists.osgeo.org/pipermail/gdal-dev/2021-November/054944.html