aboutsummaryrefslogtreecommitdiff
path: root/src
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-16Merge pull request #3118 from rouault/dynamic_datum_isequivalenttoEven Rouault
Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrame
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-14Merge pull request #3111 from direvus/1483-round-to-dateKristian Evers
unitconvert: round to nearest date when converting to yyyymmdd.
2022-03-11Rename variable per PR feedback on #3111.Brendan Jurd
2022-03-11DOCS: add missing functions from filemanager.cppBrendan Jurd
Add doxygen entries for: - proj_context_set_file_finder - proj_context_set_ca_bundle_path Fixes #2540
2022-03-11unitconvert: round to nearest date when converting to yyyymmdd.Brendan Jurd
This resolves an issue where converting from a low-precision decimalyear to yyyymmdd gave the wrong result, due to mjd_to_yyyymmdd() truncating away the fractional time component. This commit changes the behaviour of mjd_to_yyyymmdd() to round to the nearest date, instead of truncating. Refs #1483
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-09Merge pull request #3098 from rouault/fix_gdal_5408Even Rouault
Fix issue when transforming from/to BoundCRS of 3D CRS with non-Green…
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-06Merge pull request #3089 from rouault/fix_3077Even Rouault
Fix wrong results with SQLite 3.38.0 (fixes #3077)
2022-03-06Fix wrong results with SQLite 3.38.0 (fixes #3077)Even Rouault
2022-03-05Increase MAX_ITER so Mollweide forward projection works near the poles. (#3082)erykoff
2022-03-01Bump version numbers in preparation for 9.1.0 releaseKristian Evers
2022-02-23Simple SOVERSION (#3066)9.0.0Mike Taves
Co-authored-by: Bas Couwenberg <sebastic@xs4all.nl>
2022-02-23Rename "Kavraisky" to transliteration "Kavrayskiy" used by Snyder1993 (#3071)Mike Taves
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-22CTable2Grid::open(): add missing call to extent.computeInvRes() (CID 383359)Even Rouault
2022-02-22proj_grid_info(): check pj_find_file() output (CID 383357)Even Rouault
2022-02-19Fix nullptr dereference in utilities whan argv[0] == NULLEven Rouault
https://lwn.net/Articles/?offset=50 was an entertaining reading where we learn that the fact that argv[0] contains the name of the binary is purely a convention, normally taken by the shell that launches the process, but not guaranteed by the execve() system call that does the job. The following test program tested against cct, cs2cs, geod, gie and proj make them cause a null pointer dereference ``` #include <unistd.h> #include <stdio.h> extern char **environ; int main() { char* argv[] = { NULL }; printf("%d\n", execve("/path/to/some/proj/binary", argv, environ)); return 0; } ```
2022-02-15Update version numbers for 9.0.0Kristian Evers
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-14Merge pull request #3049 from rouault/proj_ini_ca_bundle_pathEven Rouault
proj.ini: add a 'ca_bundle_path' variable
2022-02-14CMake: split configuration files for apps and tests (#3048)Mike Taves
2022-02-12proj.ini: add a 'ca_bundle_path' variableEven Rouault
Cf thread https://lists.osgeo.org/pipermail/gdal-dev/2022-February/thread.html#55391
2022-02-09createOperations(): fix transformations from/to a BoundCRS of a ↵Even Rouault
DerivedGeographicCRS coming from WKT
2022-02-09filemanager.cpp: reformat [ci skip]Even Rouault
2022-02-07CMake: make BUILD_SHARED_LIBS=ON the default even on WindowsEven Rouault
2022-02-04Merge pull request #3037 from direvus/2529-err-code-unknown-formatEven Rouault
Set more precise error code for parsing errors in proj_create().
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-02-03Allow PROJ_LIB paths wrapped with double quotes (#3031)Mateusz Łoskot
This improvement is mostly useful on Windows, where users are used to wrapping paths with whitespaces with double quotes. For example, these should now be allowed (correctly concatenated): PROJ_LIB="C:\Program Files\PROJ";C:\Users\mloskot\PROJ
2022-01-31Drop autotools; move remaining useful m4 macros (#3027)Mike Taves
2022-01-24Merge pull request #3024 from rouault/fix_cygwin_buildEven Rouault
filemanager.cpp: fix build issue with Cygwin
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-18networkfilemanager.cpp: fix build issue with CygwinEven Rouault
2022-01-18filemanager.cpp: fix build issue with CygwinEven Rouault
2022-01-13Specify CMAKE_INSTALL_RPATH for macOS; use -rpath LDFLAGS for tests (#3009)Mike Taves
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)