Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
proj: Autospec creation for update from version 7.2.1 to version 9.2.1
Alan D. Snow (8): BUG: Close database connection if autoclose set to True LOG: Default log level PJ_LOG_ERROR Added proj_get_celestial_body_list_from_database (#2674) DOC: Add instructions for building docs with docker image Add proj_trans_bounds to compute the image of a input bounding box through a transformation (#2882) TYPE: Update const declarations in proj_trans_bounds DOC: add available keys to proj_context_get_database_metadata DOC: Add warning in proj_as_proj_string about potential information loss with CRS Alexander Nehrbass (5): Add vertical gird files for PL-geoid-2011, Polish geoid model Update metadata.sql to PROJ-data version 1.9 Add Belgian geoid model hBG18 to grid alternatives Fix typos/formatting in tutorials Add Slovenian geoid model SLO-VRP2016/Koper Andrew Annex (1): Adds Pseudo Mercator to build_db_from_iau.py Anthony Roberts (1): Fix build issue for ARM64 when using MSVC Bas Couwenberg (1): Fix spelling errors. Ben Boeckel (2): cmake: remove unused configure checks (#2789) cmake: check the right variable for `libdl` Bert Huijben (1): labrd: document in the tagline and documentation that lat_0 is required (#2997) Biswapriyo Nath (1): cmake: Follow unix-like install directories in mingw Brendan Ashworth (1): add startup + OSS to users docs Brendan Jurd (14): Update "PROJ.4" to "PROJ" in the Contributing document. Fix order of instructions for installing from source. (#2797) Add support for Degree Sign on input (#2791) Update docs About page to pull in license text from COPYING. Use `literalinclude` for COPYING in About page. DOC: Add content for Development/Error handling page. DOC: Refresh Development/Quickstart and remove Development/Threads (#2863) DOCS: Add doxygen entry for proj_context_set_search_paths. DOCS: Remove LATEX_SOURCE_CODE setting from Doxyfile. Docs: Add new Ellipsoids page to explain ellipsoidal parameters (#2922) Set more precise error code for parsing errors in proj_create(). unitconvert: round to nearest date when converting to yyyymmdd. DOCS: add missing functions from filemanager.cpp Rename variable per PR feedback on #3111. Charles Karney (28): Update Mercator projection Try to fix compiler complaints for max and constexpr sqrt Address comments by @schwehr phi2.cpp: remove unused static consts + minor code tweak lcc.cpp: fix abs -> fabs phi2.cpp: Slight cosmetic changes to sinpsi2tanphi. Use sincos optimization in merc_e_forward. Revised timing data... Fix/add some comments. Use nm units in builtins.gie. Remove backward looking comments in code. merc.cpp + phi2.cpp: Avoid declaring multiple variables in 1 statement. Sync w GeographicLib 1.51. Remove C99 compatibility functions. (#2445) Update geodesic routines from GeographicLib 1.52 Work around inaccurate hypot for Visual Studio 2105 (32-bit) geodesic.c: fix conditions under which hypot workaround is applied. Minor changes to address lint in geodesic.c (courtesy of Marc Emery <[email protected]>) Testing version 2.0 of geodesic routines Fix CI errors. geodesic.c: remove unused typedef Sync with source Clean up cmake for src/tests Improved series for the meridian length and its inverse Fix silly documentation issue (quoted value of pi/2 triggers error) Implement the ellipsoidal gnomonic projection Squelch complaint about uninitialized variables in gnom.cpp. Various improvements suggested by @rouault. In mlfn.cpp, invoke pj_enfn with P->n to avoid recomputating n Invoke geod_init with already computed P->f. Synchronize with 2.1 for geographiclib-c for geodesic support Daniel Evans (1): Remove git stash holdover in news.rst David Hoese (1): Add explicit NaN handling to proj_trans and gie (#3603) (fixes #3596) Eli Rykoff (4): Increase MAX_ITER so Mollweide forward projection works near the poles. (#3082) DOC: Add missing lat_0 parameter to gnomonic documentation. Improve documentation plotting of interrupted projections. (#3144) Add Interrupted Mollweide (land and ocean view) projections (#3139) Erixen Cruz (2): Use GNUInstallDirs for cmake install locations (#3150) Print deprecation warning for "find_package(PROJ4)" (#3165) Ethan Koenig (1): Fix deallocation bug in `proj_info` Even Rouault (793): proj_create_ellipsoidal_2D/3D_cs(): doc improvement Make sure that remarks is preserved when substituting (EPSG) grid name by PROJ one Fill remarks for PROJ-based operation mixing horizontal and vertical transformations Doxygen: improve doc of functions related to Datum/DatumEnsemble When reading from database, possibly return Geographic/GeodeticCRS with a DatumEnsemble, typically for WGS 84 and ETRS89 ('breaking change') When reading from database, possibly return VerticalCRS with a DatumEnsemble projinfo / createObjectsFromName(): support returning a datum ensemble proj.h: add PJ_CATEGORY_DATUM_ENSEMBLE for proj_create_from_database() docs/Makefile: restore custom 'html' target Code formatting createBoundCRSToWGS84IfPossible(): make it return same result with a CRS built from EPSG code or WKT1 COPYING: update automake and cmake: install COPYING, NEWS and AUTHORS in /share/doc/proj cct.rst: fix indentation cct: allow @filename syntax Polar stereographic at pole: make it return (0,0) WKT2 parsing: several fixes related to map projection parameter units github actions: update to conda-incubator/setup-miniconda@v2 to be compatible with latest github action security fix constraints cs2cs, cct, proj and geod: fflush(stdout) after each line to emit each result as soon as it is produced Database: update to EPSG v10.007 backport.yml: update to what QGIS uses Make GeographicCRS/GeodeticCRS::isEquivalentTo() work properly when comparing to a DerivedGeographicCRS/DerivedGeodeticCRS createOperation(): make it work properly when one of the CRS is a BoundCRS of a DerivedGeographicCRS (+proj=ob_tran +o_proj=lonlat +towgs84=....) WKT parsing: fix ingestion of WKT with a Geocentric CRS as the base of the projected CRS PROJJSON parsing: fix parsing of a Geodetic CRS with a DatumEnsemble, and fix parsing of a ProjectedCRS whose base is a Geocentric CRS projinfo.cpp: improve hint when to use --spatial-test intersects Database ESRI: map 2 grids in grid_alternatives Remove no longer used build_db_create_ignf.py script GeographicCRS::_isEquivalentTo(EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS): make it work when comparing easting,northing,up and northing,easting,up GitHub action: add a Mac build .travis.yml: remove mac job Add +proj=topocentric geocentric->topocentric conversion (fixes #500) GitHub action: add a mingw_w64 build .travis.yml: remove mingw job mutex.cpp: replace NULL by nullptr createOperation(): add a ballpark vertical transformation when dealing with GEOIDMODEL[] Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDAL Github action: add a clang static analyzer job Travis-CI: remove CSA job travis/install.sh: make it robust to objdump on 20.04 and/or clang outputing symbols in different order Github action: add a clang linux build job Travis-CI: remove linux_clang job Fix mingw_w64 warning about pj_acquire_lock() prototype being missing PRIMEM WKT handling: fixes on import for 'sexagesimal DMS' or from WKT1:GDAL/ESRI when GEOGCS UNIT != Degree; morph to ESRI the PRIMEM name on export formatting fixes Github action: add a linux_gcc_32bit job Travis-CI: remove linux_gcc8 job crs.hpp: add cppcheck suppression for cppcheck 1.90 of ubuntu 20.04 Add github action for cppcheck Move linux_gcc 4.8 job to github action, and on Travis-CI only keep the doc publishing testcct: create 'a' and 'b' from scratch createObjectsFromName(): in exact match, make looking for 'ETRS89 / UTM zone 32N' return only the exact match cs2cs: add --area and --bbox options to restrict candidate coordinate operations (fixes #2423) proj_create_crs_to_crs_from_pj(): do not use PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified Add github action for VS2019 x64 build appveyor.yml: disable VS2017 x64 build test/fuzzers: remove standard_fuzzer that used proj_api.h now removed WKT1 import: better deal with apps.epsg.org output w.r.t datum ensemble names createOperations(): get a '+proj=noop' instead of '+proj=affine +s33=-1' when attempting (non-sensical) EPSG:3855 to EPSG:4326 Inverse tmerc spherical: fix wrong sign of latitude when lat_0 is used (fixes #2468) Spherical tmerc forward: do not restrict to [-90,90] longitude range pj_datum_set(): make code more obvious to humans and analyzers API cleanup: unexport number of internal symbols, and remove/replace a few unused ones test_io.cpp: formatting fix Database: add metadata with the version number of the database layout and check it in the code fix build Add build time option to make PROJ_LIB env var tested last (fixes #2399) cs2cs / proj_create_crs_to_crs_from_pj(): add a --authority switch to control where coordinate operations are looked for (fixes #2442) Database: fix building proj.db with SQLite built with -DSQLITE_DQS=0 CI: test with a SQLite3 binary built with SQLITE_DQS=0 to avoid issue #2480 Doc: fix return data type of proj_trans_array() test_operation.cpp: remove debug message funtions.rst: fix sphynx syntax .github/workflows/clang_static_analyzer/start.sh: add apt update conda.yml: restrict to main repository builds, otherwise fails to build in forks Split coordinateoperation.cpp in many files in iso19111/operation directory Split test_operation.cpp in two parts CMake: install data/*.json files (fixes #2485) createOperations(): fix inconsistent chaining exception when transforming from BoundCRS of projected CRS based on NTF Paris to BoundCRS of geog CRS NTF Paris. Fixes https://github.com/OSGeo/gdal/issues/3273 Move proj_log_XXX() functions from internal.cpp to log.cpp Remove ancient no longer used implementation of pj_ell_set() Revise error codes to have a reduced set exposed in the public API. Doc: document error codes and proj_context_errno_string() tmerc exact: set errno to PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN when it returns invalid coordinate proj_trans_array(): make it transform all coordinates even when an error occurs proj_log_XXX functions(): add the short name of the operation as prefix in the error message Various operations: remove explicit short name prefixing in log messages now that it is automatically added Remove internal use of PJ_LOG_DEBUG_MINOR and PJ_LOG_DEBUG_MAJOR horner.cpp: remove uses of EINVAL and EDOM errno Remap ENOMEM from PROJ_ERR_INVALID_OP to PROJ_ERR_OTHER projinfo: add a --accuracy option to define the minimum accuracy proj_create_crs_to_crs_from_pj(): add ACCURACY and ALLOW_BALLPARK options Database: update to EPSG v10.008 cs2cs: add --no-ballpark and --accuracy options Database: register AGQG_20191107.gsb grid. Related to https://github.com/OSGeo/PROJ-data/pull/53 test_factory.cpp: add missing checks C API: add proj_crs_is_derived() createFromUserInput(): accept leading white space (fixes #2498) ellps_size(): do not log error if ellipsoid absent and not needed createOperations(): fix Compound to Geog3D/Projected3D CRS with non-metre ellipsoidal height workflow linux_gcc_32bit: fix Could not perform immediate configuration on 'libgcc-s1:i386' formatting fix createOperations(): fix bug involving geoidmodel and non-metre vertical unit createOperations(): remove involved logic that was done for GDA94 -> WGS84 (G1762) Database: update to EPSG v10.013 test_operation: use correct variable name Allow a BoundCRS to use a PROJ string transformation operations_computation.rst: update 'Filtering and sorting of coordinate operations' section Fix handling of +proj=ob_tran +o_proj=longlat combined with +over (fixes #2510) Database: update to EPSG v10.014 C API: avoid error messages to be emitted in PJ_LOG_NONE log level (fixes #2526) Formatting fix isEquivalentName(): fix for GDAL test failure Reformat code with clang-format-10 from ubuntu 20.04 CI: disable FreeBSD / Cirrus builds createOperations(): fix incorrect height transformation between 3D promoted RGF93 and CH1903+ (fixes #2541) grids.cpp: use C99/C++11 uint16_t/uint32_t gie_self_tests: fix use of uninitialized memory (fixes #2557) Fix gcc 11 -Wnonnull warnings UnitOfMeasure: add a move assignment operator (CID 314811) BaseObject: add a move assignment operator (CID 314820) proj_info(): remove useless nullptr checking (CID 314807) cct: remove useless nullptr checking (CID 314822) cs2cs: catch exception on bad value for --accuracy (CID 314818) gie.cpp: use correct type in error message (CID 314813) projinfo: catch exception on bad value for --accuracy (CID 314810) initcache.cpp: add assertions for potential failed mem alloc (CID 314809, 314812) is2DPartOf3D(): catch potential exception (CID 314817) Check return value of curl_easy_setopt() (CID 314805) igh: check return value of setup_zone() (CID 314816) NTv2Grid: remove useless m_name member (redundant with one of base class) insertIntoHierarchy(): avoid confusing cppcheck about potential use of moved grid Travis ARM64: set NPROC=4 to avoid the autodetected 32 to blow out RAM dmstor_ctx(): avoid setting a variable that is not read pipeline: avoid CLang Static Analyzer 10.0 likely false positive about dereferencing a nullptr README.md: comment out Cirrus CI [ci skip] doc: typo fixes typo fixes s45b.pol: remove trailing backslashes that prevent it from being used Fix comment Code cleanup: remove conditional testing of SQLITE_OPEN_URI. It is present in sqlite >= 3.11 Make proj_lp_dist() and proj_geod() work on a PJ* CRS object Database: fix NKG transformations fix_typos.sh: update while lists Doxyfile: remove obsolete COLS_IN_ALPHA_INDEX tag typo fix in comment mingw_w64/start.sh: switch to http due to osgeo SSL certificate expiration Add C/C++ API to get SQL statements to insert a CRS into database projinfo: add a '-o SQL --output-id AUTH:CODE' SQL output CRS::identify(): take into account allowed authority to identify hard-coded WGS84-based CRSs SQL output: add capability to restrict the authorities into which to look for intermediate objects SQL export: add publication_date and frame_reference_epoch to datums SQL export: add support for DatumEnsemble Add proj_context_get_database_structure() to dump structure of empty valid auxiliary DB projinfo: add a --dump-db-structure switch Add support for PROJ_AUX_DB environment variable to set the path to one or several auxiliary DBs Doc improvements regarding recomandation not to alter official registries and use auxiliary databases proj.h: add PROJ_COMPUTE_VERSION, PROJ_VERSION_NUMBER, PROJ_AT_LEAST_VERSION macros Fix proj_clone() to work on 'meta' coordinate operation PJ* objects that can be returned by proj_create_crs_to_crs() Doc: add a page to document macros Code formatting fix createFromCRSCodesWithIntermediates(): improve perf when no match Database: relax trigger check when inserting a conversion to accept any conversion method in the PROJ namespace SQL output: make it possible to export non-EPSG projection methods or methods and params lacking an explicit EPSG id Tests: add new error cases of SQL output CRS::promoteTo3D(): propagate the extent from the 2D CRS (fixes #2587) createOperations(): fix Compound to Geog3D CRS computations in the case... (fixes #2588) createOperations(): fix regression for the fix of #2588 Build: simplify proj.db generation (#2605) Add mapping of ESRI Equal_Area projection method to EPSG (fixes #2610) Dockerfile osgeo/proj-docs: update to doxygen 1.9.1 (fixes OSGeo/gdal#3619) Doc: fix typo in man page of utilities, and reduce copy&paste Fix build on Solaris 11.4 createOperation(): make sure no to discard deprecated operations... Database: update to EPSG 10.017 Database: refine checks for 'Geog3D to Geog2D+XXX' transformations, and create less synthetic 'Geographic3D to GravityRelatedHeight' synthetic transformations Database: add extra check for 'Vertical Offset by Grid Interpolation' transformations Database: stronger checks on extent of grid_transformation regarding the extent of the source and target CRS Database: update to EPSG v10.018 reproject_bbox(): reduce number of magic values cass: rewrite ellipsoidal formulas in a clearer way using EPSG guidance note names Generic inverse: fix when initial guess if super close to result cass: add +hyperbolic switch for variant used by EPSG:3139 'Vanua Levu 1915 / Vanua Levu Grid' Add mapping between EPSG method 'Hyperbolic Cassini-Soldner' and +proj=cass +hyperbolic Database: add a PROJ.VERSION metadata entry Database: add missing column type specifir for method_name in grid_transformation and other_transformation. No practical impact Database: decrease db size by using a INTEGER_OR_TEXT data type on codes createOperations(): make createBetweenGeodeticCRSWithDatumBasedIntermediates() reachable... Database: minor refresh of ignf.sql and import script with new locations of resources Database: do not create Helmert transformations in IGNF between CRS of different nature, and also adjust the method code/name to the nature of the CRS Database: more consistency checks on helmert_transformation and grid_transformation Database: nullify auth_name, code of usage table Database: more thorough consistency checks on extent of coordinate operations test: add datum shift related tests for transformations crossing antimeridian proj_trans(): add a more expressive log message projinfo: remove spurious -- in help message (master only) createFromUserInput(): add support for OGC URLs Add hard-coded definitions for OGC:AnsiDate/JulianDate/UnixTime createFromUserInput(): add support for (legacy) urn:opengis:crs:EPSG:0:XXXX syntax createFromUserInput(): add support for (legacy) urn:x-ogc:def:crs:EPSG:XXXX syntax Add UnitOfMeasure::FOOT and US_FOOT createFromUserInput(): add support for WMS AUTO: syntax Recognize OGC:84 as an alias of OGC:CRS84 fix typo in comment CMake: for test/cli, generate the output files in /test/cli like autoconf builds Doc: remove mention of k_0 and lat_ts in aeqd projection. They are not used. Fixes #2638 and fixes #2639 getCRSInfoList(): make result order deterministic (by increasing auth_name, code) createFromUserInput(): support URN:OGC:DEF:CRS:OGC:1.3:CRS84 CRS::normalizeForVisualization(): propagate domains/extent of original CRS (fixes #2603) projinfo: add a --normalize-axis-order undocument switch Reformatting fix projinfo --list-crs --area: make it work when multiple areas matches the specified name Add proj_get_celestial_body_name() and make proj_get_crs_info_list_from_database() filter on and return celestial body name reformat_cpp.sh: run inside Docker image if clang-format is not at version 10 utm: error out when value of +zone= is not an integer (fixes #2671) createOperations(): fix Geog to Geog when one is deprecated (fix master regression) createFromUserInput(): change name of CRS built from URN combined references to match the convention of EPSG projected CRS Revert "proj_create_crs_to_crs_from_pj(): do not use PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified" ConcatenatedOperation::fixStepsDirection(): fix potential nullptr dereference Database: update to EPSG v10.019 CI: add Coverity Scan weekly job coverity-scan.yml: do not build tests projinfo: catch potential exception (master only, CID 193527) getInsertStatementsFor(): replace while with if (master only, CID 320133) projinfo: increase file size limit of files opened with @filename to 1MB to be able to read file generated by ossfuzz pj_vlog(): fix buffer overflow in case of super lengthy error message test_o.cpp: add more sensical example for DerivedVerticalCRS built from urn: syntax Remove useless file data/sql/method_triggers.sql Remove uselss data/epsg-deprecated and update data/README Remove useless src/runmultistresstest.sh Move data/proj_outIGNF.dist-real to test/cli wkt1_parser/wkt2_parser: regenerate them with bison 3.5.1 to hopefully make Coverity Scan happier test_network.cpp: try to fix 'Please include winsock2.h before windows.h' warning with msys getInsertStatementsFor(): replace while with if (master only, CID 320133) test: test urn:ogc:def:ensemble: syntax Improvements related to DerivedVerticalCRS using Change Unit and Height/Depth reversal methods CI: msys2 build: build with -Werror (#2697) docs/Makefile: copy triangulation.schema.json (fixes #2699) Update nlohmann/json to latest 3.9.1 release CMake build: add a NLOHMANN_JSON_ORIGIN=auto/external/internal setting allowing to choose which nlohmann/json to use Fix ossfuzz builds [ci skip] nkg.gie: fix operation line. The repetition of operation worked previously by accident and wasn't necessary CMake build: run nkg.gie tests (dependent on CURL_ENABLED and RUN_NETWORK_DEPENDENT_TESTS settings) test/gie/Makefile.am: add nkg.gie Doc: update GDAL version Doc: fix URL Formatting fixes Fix export of transformation to PROJ string in a particular situation where CompoundCRS are involved (fixes #2720) Database: update to EPSG v10.022 scripts/grid_checks.py: improve --not-in-grid-alternatives output grid_alternatives.sql: reference AGQG_20201120.gsb (cf OSGeo/PROJ-data#63) Database: map ESRI spain/peninsula and spain/baleares grids projsync: make it filter out files not intended for the current version HOWTO-RELEASE: mention updating PROJ_DATA.VERSION code formatting fix Database: add a ANALYZE step during proj.db creation projinfo: fix error message regarding --output-id DatabaseContext::getTransformationsForGridName(): make it work properly when different EPSG grid names map to the same PROJ grid name Database: decrease DB size by using WITHOUT ROWID tables build_db.py: add hack to minimize diff now that we use WITHOUT ROWID Database: update to EPSG v10.024 ConcatenatedOperation::fixStepsDirection(): remove recently introdued hack specific to EPSG:9731 now that is is deprecated proj_create(): do not open proj.db if string is a PROJ string, even if proj_context_set_autoclose_database() has been set (fixes #2734) Cleanup: add proj/internal/mutex.hpp as compat layer for mingw32 for std::mutex test_c_api.cpp: avoid use of undefined .t component factory.cpp: preparation steps for global sqlite3* handle, but no functional change Database: use shared sqlite handle Make proj_context_set_autoclose_database() a no-op as it would defeat the purpose of the new database connection sharing Check that database connection sharing properly works proj_cleanup(): make sure it frees the database context of the default PJ_CONTEXT Run database layout checks only at first DB opening factory.cpp: lint: make memoryHandle_ a unique_ptr Database: update to EPSG v10.026 BoundCRS::identify(): avoid incompatible transformation for WKT1 / TOWGS84 export (fixes OSGeo/gdal#3958) Fix build with -DPROJ_INTERNAL_CPP_NAMESPACE proj_trans/cs2cs: If two operations have the same accuracy, use the one that is contained within a larger one operations_computation.rst: add note about proj_create_crs_to_crs not necessarily using the operation that appears as first Database: update to EPSG v10.027 test_factory.cpp: fix build, in particular on Alpine Edge (fixes #2759) createOperations(): make sure to associate an extent to the transform of a CRS with a GEOIDMODEL using a PROJ grid, so that it is later used instead of a ballpark operation (fixes #2768) Database: update to EPSG v10.028 Logging: avoid some overhead when logging is not enabled (fixes #2770) ortho: remove useless and invalid log trace (CID 350886, 350887) Formatting fix [ci skip] createOperations(): fix SourceTargetCRSExtentUse::NONE mode Add pj_log_active() to determine if logging is active pj_fwd()/pj_inv(): performance improvements through passing by ref and less function calls GeoTIFF grid reading: perf improvements (fixes #2785) build_db.py: improve error reporting [ci skip] Conversion::createUTM(): avoid integer overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36751 Inverse laea ellipsoidal: return PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN when appropriates (fixes OSGeo/gdal#4224) formatting fix factory.cpp: fix latest clang -Wstring-concatenation (false positive) warning Implement promoteTo3D() / demoteTo2D() for DerivedGeographicCRS (fixes #2803) createOperations(): fix missing deg<-->rad conversion when transforming with a CRS that has a fallback-to-PROJ4-string behaviour and is a BoundCRS of a GeographicCRS (fixes #2804) WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[] (when the WKT2 representation isn't lossless) test: more testing of Polar Stereographic variants BoundCRS: accept importing/exporting in WKT2 and PROJJSON the scope/area/extent/id attributes (fixes #2813) ConcatenatedOperation::fixStepsDirection(): fix bad chaining of steps when inverse map projection is involved in non-final step (fixes #2817) pipeline instanciation: fix potential O(n^2) performance. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37438 PROJStringFormatter::toString(): fix potential O(n^2) performance. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37438 WKT importer: detect ESRI WKT even when datum name doesn't start with D_ (fixes #2822) WKT importer: better detect ESRI WKT on projected CRS (fixes #2822) Pipeline instanciation: fix performance issues on huge (broken) strings which managed somehow to cause nested pipelines not caught due to some non-roundtripability in parsing/serializing. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37489 Doc: projjson.rst: update to PROJJSON v0.3 ESRI WKT: add support for import/export of (non interrupted) Goode Homolosine Database: update to EPSG v10.033 io.cpp: silence Coverity false positive (CID 356032) io.cpp: remove always true test Workaround false positive in recent cppcheck PROJStringFormatter::toString(): add missing iterator increment (but luckily this omission didn't result in endless loop, just an extra iteration) Doc: mentions EPSG methods that corresponds to topocentric and ortho (fixes #2832) Add proj_create_conversion_pole_rotation_netcdf_cf_convention() to address netCDF datasets using a pole rotation method Merge pull request #2836 from OSGeo/rouault-patch-1 formatting fix pj_obj_create(): avoid passing invalid ellipsoid parameters ot pj_calc_ellipsoid_params(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31964 formatting fix pipeline.cpp: remove impossible condition GeodeticCRS::identify(): make it more obvious for cppcheck createFromUserInput(): make it more obvious for cppcheck and humans too Conversion::createAxisOrderReversal(): workaround cppcheck false positive Workaround 'Overlapping read/write of union is undefined behavior' cppcheck warning (but really fixing them would be more involved) healpix.cpp: make it more obvious to cppcheck that capmap.cn is always initialized getInsertStatementsFor(): re-order projection parameters according to their canonical order if needed Fix database access across fork() when SQLite3 doesn't use pread[64]() (fixes #2843) pj_obj_create(): avoid passing invalid ellipsoid parameters to geod_init(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38192 Support importing/exporting WKT & PROJJSON of 2D axis spherical planetocentric geodetic CRS createOperations(): deal with spherical planetocentric geodetic CRS createConversion(): avoid nullptr dereference on a method without parameters createOperations(): use an explicit conversion operation for geodetic <--> geocentric latitude PROJJSON: support additional properties allowed in id object (version, authority_citation, uri) for parity with WKT2:2019 isEquivalentTo(): improve comparison of datum names based on official name and aliases (preparation for EPSG v10.035 update) test/cli/testvarious: make one test more robust regarding EPSG updates Database: update to EPSG v10.035 Fix error in implementation of Inverse ellipsoidal orthographic projection (oblique case) that cause convergence to sometimes fail (fixes #2844) Inverse ellipsoidal orthographic projection (oblique case): fix convergence at pole Inverse ortho ellipsoidal oblique: address a few remarks from https://github.com/OSGeo/PROJ/issues/2844#issuecomment-920138371 Database: add a 'anchor' field to geodetic_datum and vertical_datum tables test: getInsertStatementsFor(): test datums with anchor Optimize pipelines of planetary CRS (geocentric latitude, west-positive longitude) networkfilemanager.cpp: fix compiler warnings on 32-bit systems where time_t is 32-bit Conversion::inverse(): avoid harmless division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39033 Update proj_symbol_rename.h proj_normalize_for_visualization(): set input and output units when there are several alternative transformations (fixes #2866) Database: update to EPSG v10.036 Database: add some hand made entries early Database reading: implement reading a GeodeticCRS with a Spherical CS AuthorityFactory::createGeodeticCRS(): use description column for remarks Database: add check for Orthographic conversion Database: add IAU_2015 CRS Add a mapping for versioned authorities, so that one can use IAU:xxxx or IAU_2015:xxxx transparently PROJStringFormatter: add optimizations useful for IAU CRS transformation pipelines test: add tests of operations between geographic/geodetic and projected IAU CRS projinfo --list-crs / proj_get_crs_info_list_from_database(): make it work with IAU generic authority name CRS::extractGeodeticCRS(): implement for DerivedProjectedCRS (related to refs OSGeo/gdal#3927) CRS::identify(): fix ignoring CS order when identifying a geodetic CRS by a PROJ string with just the ellipsoid proj_factors(): accept P to be a projected CRS (fixes #2854) test_c_api.cpp: reformat proj_create_crs_to_crs() + proj_trans(): fix when non-Greenwich prime meridian is involved ProjectedCRS::_isEquivalentTo(): ignore base CRS axis order even in EQUIVALENT mode if one of them is lacking an explicit CS order (refs #2886) CRS::_isEquivalentTo(): be tolerant to different order of PROJ step options (fixes #2886) cmake build: install proj_symbol_rename.h scripts/build_db.py: fix due to recent changes Database: update to EPSG v10.037 WKT concatenated operation parsing: fix when a axis order reversal conversion is the first or last operation (fixes #2890) WKT1 parser: recognize Lambert_Conformal_Conic as projection name for LCC 1SP or 2SP (fixes #2892) CMake build: generate invproj/invgeod binaries (symlinks on Unix, copy otherwise) (fixes #2852) autoconf build: build invproj and invgeod in build directory geod / proj: accept lt-inv[geod/proj] name for older libtool versions test/cli/testproj: fix wrong variable name Add testing of invproj CMake: add a BUILD_APPS to be able to disable build of all programs ossfuzz builds: switch to cmake to build PROJ proj_crs_get_datum_forced(): catch potential exception (fixes CID 358433, 358434, 358435) CMake build: add generate_wkt1_parser and generate_wkt2_parser manual target, and logic to detect when they must be run Fix export to WKT1:ESRI of CRS, datum, ellipsoids name that don't have a EPSG equivalent and have parentheses in their name Geographic 3D CRS: allow to export to WKT1:ESRI if only the GEOGCS is known (and thus extrapolating a VERTCS) (fixes #2757) cmake/ProjTest.cmake: fix error in creation of tmp_user_writable_dir CMake: fix invproj/invgeod generation on Windows when building with an explicit configuration Fix previous commit createOperations(): avoid harmless floating-point division by zero if conversion factor of target unit is 0. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39969 exportToPROJStringGeneric(): avoid harmless floating-point division by zero if conversion factor is 0. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40050 Database: update to EPSG v10.038 CMake: align the VERSION of the library with libtool practices CMake: revise how we deal with symbol export and static builds lib_proj.cmake: add a PROJ::proj alias and add BUILD_INTERFACE include directories, so that proj can be used as a subdirectory of a larger project (fixes #2905) cppcheck.sh: make it compatible with cppcheck 2.7 util.hpp: reformat BoundCRS WKT import: fix setting of name Doc: news.rst: formatting fixes Database: update to EPSG v10.039 Reformatting fixes PROJStringFormatter::toString(): avoid invalid iterator increment (fixes #2931) CI: add a MSVC Debug build (refs #2931) createOperations(): do not stop at the first operation in the PROJ namespace for vertical transformations createOperationsCompoundToCompound(): fix null pointer dereference when connection to proj.db doesn't exist. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40955 Code reformat createOperationsGeogToGeog(): avoid potential harmless floating-point division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41045 build_db_from_esri.py: fix pyflakes3 warning, and make it python 3.8 compatible Pipeline parsing: reject proj=/o_proj= before first step, to avoid bad performance pattern on hostile pipelines Cache result of proj_get_type() to help for performance of proj_factors() (fixes #2965) PROJ string parsing: fix unquoting of parameter values when the parameter name is just one single character PROJStringSyntaxParser(): make it use pj_trim_argc/argv to have similar tokenization/serialization in different code paths Database: update to EPSG v10.041 createOperations(): improvement for "NAD83(CSRS) + CGVD28 height" to "NAD83(CSRS) + CGVD2013(CGG2013) height" CI Plot job: build PROJ from source (fixes #2961) CI: update Ubuntu 16.04 gcc 4.8 to default gcc 5.4 CMake: fix warning with external googletest WKTParser::Private::buildProjectionStandard(): minor cleanup WKT1 import: correctly deal with missing rectified_grid_angle parameter docs/source/download.rst: fix release dates [ci skip] Fix build with Intel C++ compiler news.rst: add hints about usage changes in PROJ 8.2.0 for Windows users (fixes #2999) docs/docbuild/Dockerfile: bump doxygen version (due to 1.9.1 no longer be downloadable at that URL) Fix doc generation with Doxygen 1.9.3 test proj_create_operations_with_pivot(): change CRSs used in preparation of EPSG 10.044 which adds a direct transformation between WGS84 and JGD2011 Handle EPSG:1111 'Transverse Mercator (3D)' method (used in EPSG:10.044 by Projected 3D CRS EPSG:9895 'Luxembourg TM (3D)' Database: update to EPSG 10.044 Implement Geographic3D to Depth/Geog2D+Depth as used by ETRS89 to CD Norway depth proj_get_crs_info_list_from_database(): report PJ_TYPE_GEODETIC_CRS for IAU_2015 -ocentric geodetic CRS (fixes #3012) peirce_q: rename +type parameter wrongly introduced in 8.2.1 to +shape (fixes #3011) Map peirce_q to pseudo WKT2 and ESRI WKT Database: update to EPSG 10.047 peirce_q: add inversion of +shape=square and diamond through generic inversion method Minor cppcheck fixes Conversion::_exportToPROJString(): fix potential crash introduced in recent commit. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43546 Dockerfile: build PROJ with cmake (refs #2688) Add .zenodo.json (#3019) filemanager.cpp: fix build issue with Cygwin networkfilemanager.cpp: fix build issue with Cygwin Add DOI to README.md and CITATION [ci skip] CITATION: add doi to BibTex entry lookForGridInfo(): make it work properly when passed the old PROJ name Database: update to EPSG 10.048 Database: update to EPSG 10.051 Use external gtest by default when detected Doc: clarify build requirements Doc: fix example whith used the +t_obs parameter of Helmert removed per #1264 CMake: make BUILD_SHARED_LIBS=ON the default even on Windows filemanager.cpp: reformat [ci skip] createOperations(): fix transformations from/to a BoundCRS of a DerivedGeographicCRS coming from WKT Doc: ob_tran.rst: fix name of o_lon_1, o_lat_1, o_lon_2, o_lat_2 parameters proj.ini: add a 'ca_bundle_path' variable CMake: remove all Mac specific settings added per #2009, as they appear to be obsolete given current CMake versions (fixes #3029) Database: update to EPSG v10.054 Better deal with importing strings like '+init=epsg:XXXX +over' (refs MapServer/MapServer#6478) Fix importing CRS definition with +proj=peirce_q and +shape different from square or diamond. Follow-up of #3014. Fixes #3056. master only ITRF2008: plate motion model: fix error on sign of z component of NOAM and x component of PCFC ITRF2008: add EURA_T, NOAM_T, etc. plate names that include translation rates (fixes #3053) Remove googletest source code remains Doc: mention Lambert c.e.a, Behrmann, and Gall-Peters projections as specializations of cea Doc: gall.rst: add note that Gall != Gall-Peters CMake: set RUN_NETWORK_DEPENDENT_TESTS to ON by default only if network seems available (fixes #3060) Database: insert entries in the alias_name for ESRI transformations that match a EPSG entry Fix nullptr dereference in utilities whan argv[0] == NULL proj_grid_info(): check pj_find_file() output (CID 383357) CTable2Grid::open(): add missing call to extent.computeInvRes() (CID 383359) UnitOfMeasure::operator=(UnitOfMeasure &&): avoid use of moved member (CID 383358) ProjectedCRS::_exportToWKT(): avoid false positive warning about nullptr deref (CID 383356) WKTParser::Private::buildProjectedCRS(): avoid potential nullptr deref (CID 383362) geog3DToVertTryThroughGeog2D(): avoid potential nullptr deref (CID 383355) Fix wrong results with SQLite 3.38.0 (fixes #3077) Fix issue when transforming from/to BoundCRS of 3D CRS with non-Greenwhich prime meridian, created from WKT (fixes OSGeo/gdal#5408) CMake: fix installation of proj.pc on Windows (fixes #3078) Fix import of WKT of concatenated operation with inverse conversion of a compound CRS of a projected CRS (fixes #3076) PROJBasedOperation PROJJSON export: issues an empty 'parameters' array if needed (refs #3076) Database: update to EPSG v10.055 nkg.gie: update results due to https://github.com/OSGeo/PROJ-data/pull/79 windows.yml: fix issue with sqlite3 binary and vcpkg createOperations(): fix issue in transformation northing,easting projected CRS -> +proj=longlat +lon_wrap (fixes #3095) Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrame Transformation: no longer do vertical trasnformation when doing compound CRS to 2D CRS / add --3d to cs2cs SingleCRS::baseIsEquivalentTo(): fix potential crash that is triggered by fdf5111a9a790926aacec75a07d30508a8ed9c91 changes createOperations(): fix transformation involving CompoundCRS, ToWGS84 and PROJ4_GRIDS Fix datum names when importing from PROJ4 crs strings (affects some transformations using geoidgrids) Database: update to EPSG v10.057 Database: manually fix wrong extent of EPSG:2853 (notified to IOGP) WKT2 parser: add special case for slightly non-conformant WKT output of epsg.org regarding PARAMETER["EPSG code for Interpolation CRS",crs_code,ID[EPSG,1048]] Transformation::substitutePROJAlternativeGridNames(): propagate interpolation CRS WKT import: transform PARAMETER["EPSG code for Interpolation CRS",crs_code] into interpolation CRS, and transform from that back to the parameter in BoundCRS AbridgedTransformation WKT output createOperations(): fix CompoundCRS[BoundCRS[ProjectedCRS],BoundCRS[VerticalCRS]] to Geog3DCrs exportToPROJString(): optimize pipeline of previous commit createOperations(): fix ch1903lv03_3d_bound to EPSG:4326+3855 (refs #3152) createOperations(): fix ch1903lv03_ln02_bound to EPSG:4326+3855 (fixes #3152) Database: add OGC:CRS84h (WGS 84 longitude-latitude-height) ITRF2014: fix ITRF2014:ITRF88,ITRF94 and ITRF96 definitions createBoundCRSToWGS84IfPossible(): improve selection logic to generate +towgs84= taking into account extent Database: update to EPSG v10.059 Formatting fixes Transformation::inverseAsTransformation(): avoid harmless division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46393 CI: fix doc_build job Add proj_trans_get_last_used_operation() (refs #3176) proj_coordoperation_get_grid_used(): make it work more reliably when networking is enabled (fixes #3176) Database: update to EPSG 10.063 WKT import: deal with Projected CRS that is a mix of WKT1:GDAL / WKT1:ESRI (fixes #3186) PROJ string transformation output: improve pipeline of 'OSGB36 / British National Grid + ODN height' to 'WGS 84 + EGM96 height' (refs https://github.com/OSGeo/PROJ/issues/3191#issuecomment-1124223268) createOperations(): fix/improve result of 'BD72 + Ostend height ' to 'WGS84+EGM96 height' (fixes #3191) createOperations(): fix result of 'BD72 + Ostend height' to 'Amersfoort + NAP height' and similar situations where the vertical-to-vertical transformation is a concatenated operation of 2 operations sharing the same geographic CRS Doc: mentions that Winkel Tripel has inverse method (fixes #3179) Doc: enhance PROJJSON specification (#3190) Change hub CRS semantics when importing a WKT1 COMPD_CS with a EXTENSION PROJ4_GRIDS Change hub CRS semantics when importing from a PROJ.4 string with +geoidgrids, and modify order of horizontal and vertical steps Change hub CRS semantic with +geoidgrids, only if +geoid_crs=horizontal_crs is specified Add a +proj=vertoffset method for Vertical Offset And Slope transformation (refs #3194) Map EPSG:1046 operation method to PROJ +proj=vertoffset (fixes #3194) vertoffset: add description of parameters to PROJ_HEAD() Identifier::isEquivalentName(): fix when ending by ' + ' which could indirectly cause an infinite stack call in master (fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47475) projjson.rst: formatting fix docs/source/conf.py: update github_version Database: update to EPSG 10.064 WKT export of transformation: do not put '(approx. inverse)' in inverse Helmert transformation name when it is a pure translation, as the approximate inverse is actually exact Fix warning with MSVC 2015 WKT import: correctly deal with absence of Latitude_Of_Origin parameter in WKT1 ESRI with Stereographic projection (fixes #3210) PROJJSON spec: mention the intentional lack of axis order member docs/docbuild/Dockerfile: do not use sphinxcontrib-spelling 7.4.0 Merge pull request #3213 from OSGeo/rouault-patch-1 PROJJSON: add meridian member in Axis object type. Bump version to v0.5 PROJJSON: Add temporal_extent and vertical_extent members in object usage PROJJSON parser: do not error out if a datum ensemble member is unknown in the database Doc: fix build issue with Sphinx 5.0 typo fix in code comment createOperations(): fix infinite recursion in a complex case. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47873 createOperations(): fix projected CRS with non-metre horiz&vertical unit and towgs84 to gencentric CRS (fixes #3229) IComparable::isEquivalentTo(): test first pointer equality SingleCRS::baseIsEquivalentTo(): avoid temporary object creation when comparing CRS with datum ensemble with Criterion::EQUIVALENT Doc: fix news.rst Resync schemas/v0.5/projjson.schema.json with data/projjson.schema.json CI: Cancel PR and branch workflows on new push travis/install.sh: make json validation work with older jsonschema WKT2 import/export: accept several GEOIDMODEL in a VerticalCRS PROJJSON import/export: add 'geoid_models' to allow several geoid models in a VerticalCRS PROJJSON schema: add PointMotionOperation and 'deformation_models' members to GeodeticCRS and VerticalCRS PROJJSON import/export: use 'deformation_models' member for GeodeticCRS/VerticalCRS Database: update to EPSG 10.065 proj_grid_info(): make it work again with remote grids (refs #3238) NTv2 and GTX grid readers: add a cache of lines to speed-up (fixes #3240) Database: update to EPSG 10.066 Database: add an alias for HT2_2010_CGG2013a.byn added per https://github.com/OSGeo/PROJ-data/pull/84 Database: bump PROJ_DATA.VERSION to 1.11 createOperations(): prefer simpler pipelines / affects WGS 84 to GDA94/GDA2020 proj.pc/proj-config.cmake generation: deal with CMAKE_INSTALL_xxxx being possibly an absolute path (fixes #3206) Introduce PROJ_DATA environment variable to deprecate PROJ_LIB PROJ utilities: emit deprecation warning on stderr when PROJ_LIB is set Formatting fix WKT ESRI export: fix issue with some projected CRS, such as EPSG:3800, that have the same name as a deprecated one WKT ESRI import: support LINUNIT node inside GEOGCS which indicates a geographic 3D CRS WKT ESRI export: use LINUNIT node for geographic 3D CRS, unless WKTFormatter::setAllowLINUNITNode(false) or proj_as_wkt(..., options = ['ALLOW_LINUNIT_NODE=NO]) is specified Database: resync ESRI objects with https://github.com/Esri/projection-engine-db-doc/tree/v3.0.0 Merge pull request #3259 from agiudiceandrea/patch-1 createOperations(): avoid potential infinite recursions (fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49256) PROJ pipeline generator: recognize opposite Helmert transformations using a different convention Database: generate null transformation between geodetic/vertical datum ensemble and its members (fixes #3263) Database: update to EPSG 10.068 (fixes #3250) Move Transformation::exportToPROJString() to SingleOperation, so transformations can be used as deriving conversions WKT import: use 'EPSG code for Horizontal CRS' parameter to derive interpolation CRS WKT2 parser: allow unit-less PARAMETER for coordinate operations Database: update to EPSG v10.074 WKT1 import: better deal when the angular unit of the GEOGCS[] of the PROJCS[] doesn't match the one from the database WKT parser: fix issue when parsing some WKT1 with Hotine_Oblique_Mercator_Azimuth_Center and ignoring rectified_grid_angle (fixes #3279) createOperations(): take into account axis unit and inversion of target DerivedProjectedCRS createOperations() / proj_trans(): better take into account area of interest name / do not only keep first returned coordinate operation Formatting fixes getCRSInfoList(): fix retrieval of projected_crs given by text_definition only (fixes #3288) projinfo: fix crash on --list-crs when proj.db cannot be opened common.hpp: address noExplicitConstructor warnings gie.cpp: remove unused structure member chamb: remove unused structure member isea: remove unused structure member struct pj_ctx: remove no longer used private member, and address warnings about members not copied in copy constructor putp6: avoid false positive warning with latest cppcheck JSON output: avoid rounding issues with integer values in a double on some architectures (fixes #3297) CMake: fix symbol detection when CFLAGS includes -Werror=something (fixes #3295) Database: update to EPSG v10.076 GeoTIFF grids: support UNITTYPE=arc-seconds per year for temporal hgridshift Docs: update doc of grid-based methods to mention/advertize more GeoTIFF geodetictiffgrids.rst: add a Revisions section CMake: add a INSTALL_LEGACY_CMAKE_FILES option (fixes OSGeo/gdal#5646) cppcheck.sh: update to support v2.10 Database: create a undeprecated copy of EPSG:9123 grid transformation 'NAD83(CSRS) to CGVD28 height (1)' (fixes #3328) Database: alias HT2_1997.byn to ca_nrc_HT2_2010v70.tif (refs #3328) createOperations: add missing +proj=push +v_1 +v_2 / +proj=pop +v_1 +v_2 in some vertical transformations (refs #3328) PROJ string pipeline optimizer: add optimization for EPSG:4326+5773 to EPSG:4326+5713 transformation (refs #3328) Tests: test EPSG:4326+5773 to EPSG:4326+5713 (refs #3328) createOperations(): tune name and remarks of some vertical transformations Build: link geodtest against libm when available (fixes #3311) WKT import: 3D-promote base CRS of 3D DerivedProjectedCRS (fixes #3340) proj_normalize_for_visualization(): take into account FORCE_OVER property from source operation (fixes #3347) Fix issue when transforming from/into a WKT2 Bound VerticalCRS with a 'Geographic3D to GravityRelatedHeight' method (fixes #3354) Doc: document +over limitations (fixes #3348) CI: add a CI-Fuzz github action workflows cct: emit meaningful error message when passing a non-coordinate operation (fixes #3358) proj_trans(): return error when a non-coordinate operation object is provided (fixes #3358) createOperations(): emulate PROJ < 6 behavior when doing geocentric <--> geographic transformation between datum with unknown transformation (fixes #3360) CMake: add a uninstall target Doc: document uninstall target findsOpsInRegistryWithIntermediate(): make it work when source/target geodetic CRS has no known id Avoid error on "projinfo -s 'NTF (Paris) + NGF IGN69 height' -t ETRS89" projinfo: when source (or target) CRS is specified by name, promote it to 3D if there's a known 3D CRS of same name and that the other CRS is 3D cs2cs: when source (or target) CRS is specified by name, promote it to 3D if there's a known 3D CRS of same name and that the other CRS is 3D Merge pull request #3368 from OSGeo/rouault-patch-1 createFromUserInput(): make it work better when approximate name is provided Doc: add a page about users of PROJ Merge pull request #3376 from OSGeo/rouault-patch-1 Doc: users.rst: link to bindings.rst Merge pull request #3380 from Jochem-L/patch-1 CMake: use TIFF:TIFF and CURL::libcurl targets (refs #3316) Merge pull request #3383 from OSGeo/m-kuhn-patch-1 users.rst: formatting fix Merge pull request #3385 from afrigeri/patch-1 Doc: users.rst: fix Merge pull request #3388 from AndrewAtAvenza/patch-1 defmodel.rst: add link to deformation_model.schema.json cs2cs: fix incorrect use of proj_cs_get_axis_count() introduced in 4abde1b9f8fdc5fce1d7a3179d5bcae6520ae396 (not in a release) data/sql: add a README.md and simplified UML diagrams cct and cs2cs: make them robust against UTF-8 BOM at beginning of input files (fixes #3287) Merge pull request #3393 from OSGeo/rouault-patch-1 cifuzz.yml: tune VerticalCRS::_isEquivalentTo(): do not consider VerticalCRS and DerivedVerticalCRS as equivalent createOperations(): fix issues when transforming between Geog3D and DerivedGeog3D CRS with Geographic3D offsets method C++ API: add methods to build Geographic/Vertical Offset conversions eqdc: avoid floating point division by zero in non-nominal case. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52879 Merge pull request #3416 from OSGeo/rouault-patch-2 docs/docbuild/Dockerfile: update to Doxygen 1.9.5 Doxyfile: remove warnings with Doxygen 1.9.5 vandg projection: handle +over to extend the validity domain outside of |lon|>180deg cass: fix forward computation of easting (fixes #3432) pj_generic_inverse_2d(): make deltaXYTolerance a parameter cass: use iterative generic inversion to make GIGS 5108 roundtripping tests succeed Remove remaining sprintf() uses, and deprecate proj_rtodms() by newly added proj_rtodms2() (#3431) rtodms(): fix potential buffer overflow not dealt with with PR #3431 (master only) code formatting fixes Database: register at_bev_AT_GIS_GRID_2021_09_28 grid Fix issues reported by latest cppcheck master version NetworkFile::open(): fix memory leak in unlikely error code path Database: register in grid_alternatives grids from PROJ-data that have no corresponding transformation record (fixes #3444) DatabaseContext::lookForGridInfo(): fix caching of fullFilename (fixes #3444) DatabaseContext::lookForGridInfo(): fix setting .url member when a file is not in grid_alternatives, not local, but found on CDN (fixes #3444) cs2cs: better validate value of -W option (fixes #3451) PROJJSON: bump to 0.6 with an additional optional source_crs property in abridged_transformation (refs #3428) omerc: mention in doc that +lon_0 is ignored, align name of +lat_0 and +lonc with EPSG names, and emit a trace when +lon_0 is used (fixes #3464) Doc: update references to OGC Topic 2 spec to its r5 revision cs2cs.rst: add note regarding grids beeing needed (fixes #3470, #3471) Update proj_symbol_rename.h createFromUserInput(): make approximate matching by name more restrictive to avoid false positives (fixes #3484) Add bench_proj_trans benchmarking utility Database: update to EPSG 10.077 WKT import: when importing LOCAL_CS["foo"], generates a non-empty name for the datum Merge pull request #3492 from OSGeo/rouault-patch-2 formatting fixes GeographicBoundingBox::Private::intersects(): avoid infinite recursion on degenerate bounding box DatabaseContext::lookForGridInfo(): add PROJ networking state in cache information (fixes pyproj4/pyproj#1192) proj_trans(): fix performance regression Make pj_fwd4d() and pj_inv4d() pass arguments by reference, nd use them directly in pipeline_forward/inverse_4d() Pass PJ_COORD by reference for fwd4d and inv4d callbacks Improve a bit performance of +proj=axisswap +order=2,1 Database: update to EPSG v10.078 Add a +proj=gridshift (general grid shift) method to be used for NADCON5 grids GTiff grid reading: speed-up retrieving data in last accessed tile gridshift: add a +no_z_transform flag Add NADCON5 transformation method support and database entries metadata.sql: bump PROJ_DATA.VERSION to 1.13 Database: add concatenated operations for NADCON5 transformations Add a GenericShiftGrid::valuesAt() method for faster value retrieval gridshift: use GenericShiftGrid::valuesAt() pj_get_suggested_operation(): make sure to use NADCON5 grids rather than HPGN ones for NAD83 to NAD83(HARN) bench_proj_trans: add options to add random noise gridshift: cache grid values when interpolating repeatedly in the same grid cell pj_get_suggested_operation(): tune so that NADCON5 grid is used for NAD27->NAD83 on CONUS schemas/v0.5/projjson.schema.json: fix wrong inheritance that cause validation issues when using a DynamicGeodeticReferenceFrame or DynamicVerticalReferenceFrame schemas/v0.6/projjson.schema.json: fix wrong inheritance that cause validation issues when using a DynamicGeodeticReferenceFrame or DynamicVerticalReferenceFrame Add validation of dynamic geographic and vertical CRS against projjson schema aeqd_s_forward(): cleanup code and improve performance in polar case WKT <--> PROJ: correctly map 'Lambert Azimuthal Equal Area (Spherical)' to '+proj=laea +R_A' Avoid cppcheck master warnings Add comments about why we assign in 2 steps cea/laea: do not export +R_A on a spherical ellipsoid (fixes recent master commit) set_ellipsoid(): avoid floating point division by zero with f=2 ProjectedCRS::identify(): relax trust in id/authority in definition to identify Doc: make 'program' an alias of 'ref' Doc: add separate title for invproj and invgeod, otherwise links to invproj/invgeod would have the proj/geod labels Fix build with -DPROJ_INTERNAL_CPP_NAMESPACE install.rst: improve instructions regarding proj-data (fixes #3539) proj_create_crs_to_crs_from_pj(): add a ONLY_BEST=YES option (fixes #3533) proj_create_crs_to_crs(): emit a debug message if the best transformation cannot be used / cs2cs: add a --only-best=no switch proj_clone(): avoid emitting errors on tranformations where some are not instanciable Add link to PROJ doc when ONLY_BEST warning/error triggers, and correctly propagate errorIfBestTransformationNotAvailable to alternate operations Add PROJ_ONLY_BEST_DEFAULT environment variable, and 'only_best_default' proj.ini setting Check about consistent celestial body: relax tolerance for Mars use cases and add a PROJ_IGNORE_CELESTIAL_BODY=YES environment variable Update docs/source/apps/cs2cs.rst resource_files.rst: use literalinclude for proj.ini cs2cs: add example demonstrating --only-best usefulness Fix related to force_over best_only: move warning at the PJ* level proj.ini: do not set 'only_best_default' at all; and when set to on/off, disable related warnings formatting fix CI Conda: remove patches from upstream proj.4 feedstock as it is applied in PROJ master .github/workflows/conda.yml: partial revert of 6dbee23fa9c47d6abd0a7251fe70756fe997f878 to only do Conda builds on push, not pull request Add correctly named createTunisiaMiningGrid() / proj_create_conversion_tunisia_mining_grid() and deprecate the wrongly named methods (fixes #3543) CoordinateMetadata: add C++ class, WKT and PROJJSON support JSON/WKT import: test invalid CoordinateMetadata C API: add PJ_TYPE_COORDINATE_METADATA, proj_coordinate_metadata_get_epoch(), support if in proj_create() and proj_get_source_crs() createFromUserInput(): accept 'CRS_name@decimal_year' syntax to instanciate a CoordinateMetadata createOperations(): support one of source/target to be a CoordinateMetadata install.sh: validate PROJJSON CoordinateMetadata Add CRS::isDynamic() CoordinateMetadata: require epoch for dynamic CRS, forbid it for static CRS Typo fixes and other changes to make ./scripts/fix_typos.sh happy createFromUserInput(): make http://www.opengis.net/def/crs/IAU/2015/XXXX work (fixes #3568) Actually fix proj_normalize_for_visualization() on a transformation got with FORCE_OVER=YES (fixes #3567) proj_create_from_wkt(): make it work on COORDINATEMETADATA[] Database: update to EPSG 10.081 Add support for DatumEpoch property in GeodeticReferenceFrame and VerticalReferenceFrame, in WKT and PROJJSON (refs #3571) Add support for minimumValue, maximumValue, rangeMeaning properties in CoordinateSystemAxis, in WKT and PROJJSON (refs #3571) Database: resync ESRI objects with https://github.com/Esri/projection-engine-db-doc at tag v3.1.0 projjson.rst: remove mention about COORDINATEMETADATA not being implemented projjson.rst: remove mention of current version which is redundant with history paragraph test/unit/test_io.cpp: test importing invalid WKT/JSON with datum anchor, axisminval, axismaxval, rangemeaning WKT import: make axis direction and range meaning enumeration case insensitive as mandated by spec Implement EPSG:9621 'Similarity transformation' and import related transformations from EPSG typo fixes Implement AffineCS and handle it in WKT/PROJJSON createBoundCRSToWGS84IfPossible(): factor code. No functional change createBoundCRSToWGS84IfPossible(): do not report +towgs84 for a CRS with multiple extents, such as EPSG:6316 (refs #3246) C API: add proj_get_domain_count(), proj_get_area_of_use_ex() and proj_get_scope_ex() Add a .pre-commit-config.yaml pre-commit configuration file Doc: add a dev_practices.rst page Add .git-blame-ignore-revs test/benchmark/CMakeLists.txt: hopefully fix Conda Windows build failure related to 'warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc' README.md: remove appveyor badge [ci skip] Update to clang-format 15 Add aa818d6772887453432ce607410b784ff56308a1 to .git-blame-ignore-revs Use explicitly clang-format-15 pj_get_suggested_operation(): handle longitudes outside of [-180,180] for coordinate operation selection (fixes #3594) projinfo: fix long option name --source-crs (fixes #3600) Doc: Prevent double hypen (--) to be replaced by Unicode long dash character .readthedocs.yaml: do not do builds only if the only changes are in docs/ or .readthedocs.yaml proj_trans(): restore behaviour of PROJ 9.1 with transforming points in northern USA states from NAD27 to WGS 84 when no grid is available Database: update to EPSG 10.082 proj_create_crs_to_crs(): restore behaviour of PROJ 9.1 (fixes #3613) WKT1 parser: only emit warning when encountering invalid UNKNOWN WKT1 axis direction (fixes #7210) proj_pj_info(): make it behave like before ONLY_BEST addition (fixes #3619) pj_get_suggested_operation(): tune for GDA94 <--> WGS84 and GDA2020 <--> WGS84 pj_get_suggested_operation(): avoid string comparisons by precomputing a boolean createOperations(): avoid very poor performance / 'Too deep recursion in createOperations()' on a geographic CRS whose datum name is the alias of an official one (fixes #3623) createOperations(): improve datum equivalence checking by passing databaseContext argument (refs #3623) .github/workflows/mac/before_install.sh: add pkg-config eck4.cpp: improve code readability. No computation changes Inverse eck4: add checks for projection domain (fixes #2152) .github/workflows/mac/before_install.sh: add pkg-config Fix clang-tidy -checks=performance-inefficient-string-concatenation in library and apps codee WKT1 parser: support inf as inverse flattening value (fixes Toblerity/Fiona@1208) isea.cpp: add comment about inverse Merge pull request #3630 from rouault/NEWS_fix Merge pull request #3633 from rouault/fix_3632 Merge pull request #3635 from rouault/fix_3629 Merge pull request #3636 from rouault/nad83_3d_as_wkt1_esri testvarious: do not output program name / version number Merge pull request #3642 from rouault/fix_3639 Merge pull request #3643 from rouault/epsg_10_083 Merge pull request #3646 from rouault/epsg_10_084 Merge pull request #3652 from rouault/fix_3651 Merge pull request #3656 from rouault/fix_3654 Merge pull request #3661 from roua…
- Loading branch information