aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-08-29io.cpp: silence Coverity false positive (CID 356032)Even Rouault
2021-08-27ESRI WKT: add support for import/export of (non interrupted) Goode HomolosineEven Rouault
Issue found during https://github.com/OSGeo/gdal/pull/4355 when it was found that a WKT with Goode_Homolosine projection parsed as ESRI WKT was mapped wrongly to Interrupted Goode Homolosine
2021-08-27Merge pull request #2824 from rouault/fix_ossfuzz_37489Even Rouault
Pipeline instanciation: fix performance issues on huge (broken) strings...
2021-08-26Pipeline instanciation: fix performance issues on huge (broken) strings ↵Even Rouault
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
2021-08-26WKT importer: better detect ESRI WKT on projected CRS (fixes #2822)Even Rouault
2021-08-26WKT importer: detect ESRI WKT even when datum name doesn't start with D_ ↵Even Rouault
(fixes #2822)
2021-08-21PROJStringFormatter::toString(): fix potential O(n^2) performance. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37438
2021-08-21pipeline instanciation: fix potential O(n^2) performance. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37438
2021-08-20ConcatenatedOperation::fixStepsDirection(): fix bad chaining of steps when ↵Even Rouault
inverse map projection is involved in non-final step (fixes #2817)
2021-08-19BoundCRS: accept importing/exporting in WKT2 and PROJJSON the ↵Even Rouault
scope/area/extent/id attributes (fixes #2813) For PROJJSON only, also accept the ``name`` attribute.
2021-08-16Merge pull request #2809 from rouault/preserve_proj4_crs_string_wkt2_remarksEven Rouault
WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[]…
2021-08-16Spell the last name of R.E. Deakin correctlyThomas Knudsen
It's spelled correctly in the references, so better also get it right in the source
2021-08-16WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[] (when ↵Even Rouault
the WKT2 representation isn't lossless)
2021-08-16createOperations(): fix missing deg<-->rad conversion when transforming with ↵Even Rouault
a CRS that has a fallback-to-PROJ4-string behaviour and is a BoundCRS of a GeographicCRS (fixes #2804)
2021-08-16Implement promoteTo3D() / demoteTo2D() for DerivedGeographicCRS (fixes #2803)Even Rouault
2021-08-15factory.cpp: fix latest clang -Wstring-concatenation (false positive) warningEven Rouault
2021-08-15Add support for Degree Sign on input (#2791)Brendan Jurd
This commit adds support in dsmtor() for a Degree Sign (U+00B0), encoded as UTF-8 (`\xc2\xb0`) or as a single byte (`\xb0`) (in ISO 8859 parts 1-4, 7-10, 13, 15, 16, and several Windows code pages), as an alternative symbol to `D`/`d` to designate the degree unit. Fixes #2712.
2021-08-13Inverse laea ellipsoidal: return ↵Even Rouault
PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN when appropriates (fixes OSGeo/gdal#4224)
2021-08-10Conversion::createUTM(): avoid integer overflow. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36751
2021-07-22GeoTIFF grid reading: perf improvements (fixes #2785)Even Rouault
With this commit, and the 2 previous ones, given mytest.cpp ``` int main() { PJ* pj = proj_create(nullptr, "+proj=vgridshift +grids=us_nga_egm96_15.tif"); for( int i = 0; i < 5*1000*1000; i++) { PJ_COORD coord; coord.lpz.lam = 0; coord.lpz.phi = 0; coord.lpz.z = 0; proj_trans(pj, PJ_FWD, coord); } return 0; } ``` we get a x2 speedup Before: ``` $ PROJ_LIB=data:$HOME/proj/PROJ-data/us_nga LD_LIBRARY_PATH=src/.libs hyperfine --warmup 1 'taskset -c 11 ./mytest' Benchmark #1: taskset -c 11 ./mytest Time (mean ± σ): 1.950 s ± 0.014 s [User: 1.945 s, System: 0.005 s] Range (min … max): 1.937 s … 1.971 s ``` After: ``` $ PROJ_LIB=data:$HOME/proj/PROJ-data/us_nga LD_LIBRARY_PATH=src/.libs hyperfine --warmup 1 'taskset -c 11 ./mytest' Benchmark #1: taskset -c 11 ./mytest Time (mean ± σ): 984.4 ms ± 3.1 ms [User: 977.0 ms, System: 7.2 ms] Range (min … max): 979.3 ms … 990.5 ms ```
2021-07-22pj_fwd()/pj_inv(): performance improvements through passing by ref and less ↵Even Rouault
function calls
2021-07-22Add pj_log_active() to determine if logging is activeEven Rouault
2021-07-21Doc: fix links to :c:func:`proj_...` by specifying "h" as "c" domainMike Taves
2021-07-20createOperations(): fix SourceTargetCRSExtentUse::NONE modeEven Rouault
Fix issue reported in https://lists.osgeo.org/pipermail/proj/2021-July/010318.html
2021-07-20Formatting fix [ci skip]Even Rouault
2021-07-14CMake: remove external nlohmann_json from INTERFACE_LINK_LIBRARIES targetMike Taves
2021-07-13Add S2 projection (#2749)marcus-elia
2021-07-11ortho: remove useless and invalid log trace (CID 350886, 350887)Even Rouault
2021-07-08Logging: avoid some overhead when logging is not enabled (fixes #2770)Even Rouault
2021-07-08Merge pull request #2769 from rouault/fix_2768Even Rouault
createOperations(): make sure to associate an extent to the transform…
2021-07-07createOperations(): make sure to associate an extent to the transform of a ↵Even Rouault
CRS with a GEOIDMODEL using a PROJ grid, so that it is later used instead of a ballpark operation (fixes #2768)
2021-07-04fix installation of executables on iOSSpaceIm
2021-06-30Bump version numbers in anticipation of 8.2.0Kristian Evers
2021-06-25Update ABI numbers for 8.1.0 releaseKristian Evers
2021-06-22Minor changes to address lint in geodesic.c (courtesy of Marc Emery ↵Charles Karney
<memery@myotest.com>)
2021-06-17proj_trans/cs2cs: If two operations have the same accuracy, use the one that ↵Even Rouault
is contained within a larger one Relates to https://github.com/OSGeo/gdal/issues/3998 Before that change, cs2cs on a NAD83(HARN) to WGS84 transformation would use the "NAD83(HARN) to WGS 84 (1)" transformation (a null Helmert shift) that is valid for whole US, including non-CONUS areas, even when used on points located on CONUS that has a "NAD83(HARN) to WGS 84 (3)" transformation (non-null Helmert shift) with same accuracy (1m). But if doing EPSG:2874 "NAD83(HARN) / California zone 5 (ftUS)" to WGS84, we would use this later "NAD83(HARN) to WGS 84 (3)" transformation because the area of use of EPSG:2874 restricts to CONUS. This isn't consistant. With that change, we now have more consistent behavior, even if it can be argued which of the 2 transformations is the best... $ echo 34 -120 | src/cs2cs -d 8 EPSG:4326 "NAD83(HARN)" | src/cs2cs "NAD83(HARN)" EPSG:2874 5955507.74 1828410.98 0.00 $ echo 34 -120 | src/cs2cs EPSG:4326 EPSG:2874 5955507.74 1828410.98 0.00
2021-06-14Fix build with -DPROJ_INTERNAL_CPP_NAMESPACEEven Rouault
2021-06-10BoundCRS::identify(): avoid incompatible transformation for WKT1 / TOWGS84 ↵Even Rouault
export (fixes OSGeo/gdal#3958)
2021-06-08Make filemanager aware of UWP Win32 APIGeoff Evans
2021-06-03factory.cpp: lint: make memoryHandle_ a unique_ptrEven Rouault
2021-06-03Run database layout checks only at first DB openingEven Rouault
2021-06-03proj_cleanup(): make sure it frees the database context of the default ↵Even Rouault
PJ_CONTEXT
2021-06-03Make proj_context_set_autoclose_database() a no-op as it would defeat the ↵Even Rouault
purpose of the new database connection sharing
2021-06-03Database: use shared sqlite handleEven Rouault
2021-06-03factory.cpp: preparation steps for global sqlite3* handle, but no functional ↵Even Rouault
change
2021-06-02Merge pull request #2736 from rouault/cleanup_mutexEven Rouault
Cleanup: add proj/internal/mutex.hpp as compat layer for mingw32 for std::mutex
2021-06-02Cleanup: add proj/internal/mutex.hpp as compat layer for mingw32 for std::mutexEven Rouault
2021-06-02proj_create(): do not open proj.db if string is a PROJ string, even if ↵Even Rouault
proj_context_set_autoclose_database() has been set (fixes #2734)
2021-05-27ConcatenatedOperation::fixStepsDirection(): remove recently introdued hack ↵Even Rouault
specific to EPSG:9731 now that is is deprecated
2021-05-24DatabaseContext::getTransformationsForGridName(): make it work properly when ↵Even Rouault
different EPSG grid names map to the same PROJ grid name