aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2020-02-08Merge pull request #1917 from rouault/fix_test_issues_on_i386Kristian Evers
Fix test issues on i386
2020-02-07Merge pull request #1918 from rouault/update_travis_csaEven Rouault
Travis: update CLang Static Analyzer to CLang 9
2020-02-07Fix numerical precision issues in vandg and robinEven Rouault
Refs #1906 Fix remaining issues of https://github.com/OSGeo/PROJ/issues/1906#issuecomment-583168348 as found with gcc 8.2.0 -m32 -O2
2020-02-07Fix test issues on i386Even Rouault
Fix a few issues of #1906 found when running the test suite on Ubuntu 16.04 with gcc 5.5 -m32. When applied on top of the fix of #1912, make check succeeds
2020-02-06Fix cppcheck warnings and make it work with latest cppcheck 1.90Even Rouault
2020-02-06Travis: update CLang Static Analyzer to CLang 9Even Rouault
Enable optional checkers Fix two false positives
2020-02-06cart: Avoid discontinuity at poles in the inverse caseKristian Evers
This should avoid issues with numerical stability as uncovered in https://github.com/OSGeo/PROJ/issues/1906. Practically speaking this change isn't going to affect real life scenarios since the position of the center of the Earth is rarely expressed in geodetic coordinates.
2020-02-06Merge pull request #1915 from rouault/fix_1911Even Rouault
Fix identification of ESRI-style datum names starting with D_ but without alias
2020-02-05Fix identification of ESRI-style datum names starting with D_ but without aliasEven Rouault
Fixes #1911
2020-02-05Fix performance issue, affecting projinfo EPSG:7842Even Rouault
Fixes #1913 AuthorityFactory::createBetweenGeodeticCRSWithDatumBasedIntermediates() issued a complex SQL query that pushes the SQLite3 query plan optimizer to its limits. Was working reasonably with sqlite 3.11, but not with later versions. So put less constraints in the main query and do post-processing checks and auxiliary requests to avoid such issues. For some unknown reason, this slightly slows down a bit execution time of the whole test_cpp_api binary (~ 10%), but couldn't come with something better, despite trying many variations of the main SQL query. It seems that in the general case the non-filter LEFT JOIN on the supersession table helped, except on this EPSG:7842 case.
2020-02-04Merge pull request #1910 from cffk/cmake-projCharles Karney
Make PROJ the CMake project name addressing first stage of #1885 Let's go with this! It's conceivable that there's some wrinkle I haven't thought about. So let's expose the changes to a wider community.
2020-02-04Merge pull request #1903 from rouault/add_proj_downloadEven Rouault
Add projsync utility
2020-02-04Add projsync utilityEven Rouault
Fixes #1750
2020-02-04Make PROJ the CMake project nameCharles Karney
Allow both find_package(PROJ) and find_package(PROJ4). More details are in cmake/CMakeLists.txt.
2020-02-04Increase CMake minimum version from 3.5 to 3.9Mike Taves
* Also remove a few if()-blocks to support older CMake versions
2020-02-02Merge pull request #1902 from rouault/fix_asan_issue_sqlite3_vfsEven Rouault
Fix ASAN issue with SQLite3VFS class (fixes #1901)
2020-02-02proj_download_file(): relax test for the situation where a file < 1 MB is ↵Even Rouault
updated to be slightly larger CloudFront could return a Range: bytes=0-X/Y with X < Y and X being the previous file size and Y the new one
2020-02-02build_url(): remove no longer needed hackEven Rouault
2020-01-31Fix ASAN issue with SQLite3VFS class (fixes #1901)Even Rouault
2020-01-30Merge pull request #1897 from rouault/map_geocentric_translation_methodKristian Evers
Add EPSG records for 'Geocentric translation by Grid Interpolation (IGN)' (gr3df97a.txt) and map them to new +proj=xyzgridshift
2020-01-29Merge pull request #1896 from rouault/add_set_operationKristian Evers
Add +proj=set operation to set component(s) of a coordinate to a fixed value
2020-01-29Add EPSG records for 'Geocentric translation by Grid Interpolation (IGN)' ↵Even Rouault
(gr3df97a.txt) and map them to new +proj=xyzgridshift
2020-01-29Make it possible to use grids from the CDN by their 'old name' even if not ↵Even Rouault
in the EPSG/grid_transformation table
2020-01-29Merge pull request #1891 from rouault/rfc5Even Rouault
Implement RFC5: Adopt GeoTIFF-based grids for grids delivered with PROJ
2020-01-28Add +proj=set operation to set component(s) of a coordinate to a fixed valueEven Rouault
Fixes #1846
2020-01-27projinfo: add --remote-data switchEven Rouault
2020-01-27projinfo: add --searchpaths switchEven Rouault
2020-01-26Conversion::_exportToPROJString(): use const ref as rightly suggest by cppcheckEven Rouault
2020-01-26Make JSONParser::buildObjectDomain() staticEven Rouault
2020-01-26buildProjectionStandard(): make it obvious to cppcheck that null-ptr ↵Even Rouault
dereference cannot happen
2020-01-26string_to_paralist(): simplify so that it is obvious to cppcheck that ↵Even Rouault
null-ptr dereference cannot happen
2020-01-25Merge pull request #1884 from rouault/cea_k_0Kristian Evers
Fix ingestion of +proj=cea with +k_0
2020-01-25Fix ingestion of +proj=cea with +k_0Even Rouault
Fixes #1881 Digging into the implementation of proj=cea, it appears that k_0 and lat_ts are intended to be exclusive ways of specifying the same concept. EPSG only models the variant using lat_s. So if k_0 is found and lat_ts is absent, compute the equivalent value of lat_ts from k_0. Note: k_0 should normally be in the [0,1] range. In case creative users would use something outside, we raise an exception, even if the cea implementation could potentially deal with any k_0 value. Hopefully this is a (reasonable) limitation that will address nominal use cases.
2020-01-25Init file reading: use FileManager::open_resource_file() instead of ↵Even Rouault
deprecated proj_api I/O
2020-01-25Grid correction: fix handling grids spanning antimeridian (fixes #1859)Even Rouault
2020-01-25Implement RFC 5Even Rouault
2020-01-24createObjectsFromName(): use alias as fallback onlyEven Rouault
Fixes a regression of 6.3.0 found when creating with GDAL a TIFF with a Geographic3D CRS. As TIFF must also encode the Geographic2D CRS, the code of the Geographic2D CRS is searched from the name of the Geographic3D CRS. When doing createObjectsFromName( "ETRS89", {AuthorityFactory::ObjectType::GEOGRAPHIC_2D_CRS}, false, 1), the result returned was not EPSG:4258 as expected, but EPSG:4173 IRENET95 which is registered as an alias of ETRS89. So sort results such that non-alias results are returned first.
2020-01-24Merge pull request #1870 from mwtoews/build-testingMike Taves
CMake: replace PROJ_TESTS with CTest's BUILD_TESTING option
2020-01-24CMake: replace PROJ_TESTS with CTest's BUILD_TESTING optionMike Taves
* CTest automatically creates a BUILD_TESTING option (default is ON) * Also allow PROJ_TESTS to be used, but show deprecation message; and add note to remove this option by PROJ 8.0 * Only build geodtest when tests are enabled * Add documentation to configure a build using -DBUILD_TESTING=OFF
2020-01-23Merge pull request #1873 from rouault/fix_wrong_use_of_derivingConversionKristian Evers
Fix wrong use of derivingConversionRef() that caused GDAL bug
2020-01-23Fix wrong use of derivingConversionRef() that caused GDAL bugEven Rouault
Hopefully final cut at solving the same class of bug that the one that affected QGIS in December. This time, this hit GDAL in the situation of https://lists.osgeo.org/pipermail/gdal-dev/2020-January/051500.html The bug fix for that particular issue is in PROJStringParser::createFromPROJString() But grepping more in the code base, I could find other potential smelly situations (might not be issues, but better be safe than sorry), so let's fix them too. Bottom line is: derivingConversionRef() should *only* be used for consultation, and never to create a new ProjectedCRS()
2020-01-23Database: add a geoid_like value for proj_method column of ↵Even Rouault
grid_alternatives, fix related entries and simplify/robustify logic to deal with EPSG 'Geographic3D to GravityRelatedHeight' methods
2020-01-22Database: update to EPSG v9.8.6Even Rouault
Fixes #1867
2020-01-22Merge RFC4 (#1865)Even Rouault
This commit is the result of the squashing of rfc4_dev branch in a single commit. It implements mostly RFC 4 related work. * Grid handling: - remove obsolete and presumably unfinished implementation of grid catalog functionality - all grid functionality is in grids.cpp/.hpp - vertical and horizontal grid shift: rework to no longer load whole grid into memory - remove hgrids and vgrids member from PJ structure, and store them in hgridshift/vgridshift/deformation structures - build systems: add optional libtiff dependency. Must be explicitly disabled if not desired - add support for horizontal and vertical grids in GeoTIFF, if libtiff is available - add GenericShiftGridSet and GenericShiftGrid classes, relying on TIFF grids, that can be used for generic purpose grid-based adjustment - add a +proj=xyzgridshift method to perform geocentric translation by grid. Used for French NTF to RGF93 transformation using gr3df97a.tif grid - deformation: add support for +grids= for GeoTIFF grids - horizontal grid shift: fix failures on points slightly outside a subgrid (fixes #209) * File management: - add a filemanager.cpp/.hpp to deal with file related work - test for legacy proj_api.h fileapi - proj.h: add proj_context_set_fileapi() and proj_context_set_sqlite3_vfs_name() (fixes #866) - add capability to read resource files from the user writable directory * Network access: - build systems: add optional curl dependency - add a curl-based default implementation for network related functionality - proj.h: add C API to control network functionality, and optionaly provide network callbacks - add data/proj.ini with default settings - add a SQLite3 local cache of downloaded chunks - add proj_is_download_needed() and proj_download_file() * Use Win32 Unicode APIs and expect all strings to be UTF-8 (fixes #1765) For backward compatibility, if PROJ_LIB content is found to be not UTF-8 or pointing to a non existing directory, then an attempt at interpretating it in the ANSI page encoding is done. proj_context_set_search_paths() now assumes strings to be in UTF-8, and functions returning paths will also return values in UTF-8.
2020-01-21ProjectedCRS::identify(): fix wrong identification of some ESRI WKT linked ↵Even Rouault
to units Fixes bug reported in https://lists.osgeo.org/pipermail/gdal-dev/2020-January/051481.html
2020-01-14Merge pull request #1844 from kbevers/remove-ld-optionKristian Evers
Remove -ld option from proj and cs2cs
2020-01-13Remove -ld option from proj and cs2csKristian Evers
It promotes use of deprecated paramters +datum and +towgs84 which we don't want to encourage. Closes #1308
2020-01-13unitconvert with mjd time format: avoid potential integer overflowEven Rouault
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20072
2020-01-11Merge pull request #1838 from rouault/limit_datum_name_massaging_wkt1Even Rouault
WKT1_GDAL export: limit datum name massaging to names matching EPSG (fixes #1835)
2020-01-11Merge pull request #1836 from rouault/fix_projcrs3D_with_non_metre_z_unitEven Rouault
createOperations(): fix dealing with projected 3D CRS whose Z units != metre