aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
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-02-14Better deal with importing strings like '+init=epsg:XXXX +over' (refs ↵Even Rouault
MapServer/MapServer#6478)
2022-01-31Drop autotools; move remaining useful m4 macros (#3027)Mike Taves
2021-11-19Fix windows.h conflict with Criterion::STRICTJulien Schueller
If window.h is included in the same compilation unit we can expect this kind of errors: ``` util.hpp:348:15: error: expected identifier before ‘,’ token 348 | STRICT, ```
2021-11-03util.hpp: reformatEven Rouault
2021-10-23CMake: revise how we deal with symbol export and static buildsEven Rouault
- Remove the explicit PROJ_MSVC_DLL_IMPORT symbol used for importing symbols from a MSVC .dll: by default on MSVC, we use now __declspec(dllimport), unless PROJ_MSVC_DLL_EXPORT is defined by PROJ at build time. This makes it easier for users: they don't have to define anything special. This simplifies in particular the build of our binaries - For static builds, export -DPROJ_DLL= as public, so that users that import PROJ through CMake mechanism don't have to do it manually.
2021-10-08WKT concatenated operation parsing: fix when a axis order reversal ↵Even Rouault
conversion is the first or last operation (fixes #2890)
2021-10-06CRS::_isEquivalentTo(): be tolerant to different order of PROJ step options ↵Even Rouault
(fixes #2886)
2021-09-28projinfo --list-crs / proj_get_crs_info_list_from_database(): make it work ↵Even Rouault
with IAU generic authority name
2021-09-28Add a mapping for versioned authorities, so that one can use IAU:xxxx or ↵Even Rouault
IAU_2015:xxxx transparently
2021-09-15isEquivalentTo(): improve comparison of datum names based on official name ↵Even Rouault
and aliases (preparation for EPSG v10.035 update)
2021-09-14PROJJSON: support additional properties allowed in id object (version, ↵Even Rouault
authority_citation, uri) for parity with WKT2:2019
2021-09-08createOperations(): use an explicit conversion operation for geodetic <--> ↵Even Rouault
geocentric latitude
2021-09-08createOperations(): deal with spherical planetocentric geodetic CRSEven Rouault
This also fixes conversion between geocentric latlong and geodetic latlong with cs2cs. This was dealt with in PR 1093, but in the wrong direction (the geocentric latitude must be <= in absolute value to the geodetic one) The issue here was linked to the semantics of the +geoc specifier, which affects the semantics of the input coordinates in the forward direction (+geoc means that the input coordinate is is a geocentric latitude), which defeats the logic of doing A to B by using the inverse path of A and the forward path of B.
2021-09-07Support importing/exporting WKT & PROJJSON of 2D axis spherical ↵Even Rouault
planetocentric geodetic CRS
2021-09-02Add proj_create_conversion_pole_rotation_netcdf_cf_convention() to address ↵Even Rouault
netCDF datasets using a pole rotation method
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-16WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[] (when ↵Even Rouault
the WKT2 representation isn't lossless)
2021-08-16Implement promoteTo3D() / demoteTo2D() for DerivedGeographicCRS (fixes #2803)Even Rouault
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-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-02Cleanup: add proj/internal/mutex.hpp as compat layer for mingw32 for std::mutexEven Rouault
2021-05-12Formatting fixesEven Rouault
2021-05-04DOC: configure and add spelling wordlist; fix typos, apply Sphinx syntax (#2705)Mike Taves
2021-04-30CMake build: add a NLOHMANN_JSON_ORIGIN=auto/external/internal setting ↵Even Rouault
allowing to choose which nlohmann/json to use Co-authored-by: Mike Taves <mwtoews@gmail.com>
2021-04-30Update nlohmann/json to latest 3.9.1 releaseEven Rouault
2021-04-24Add proj_get_geoid_models_from_database() (#2681)Javier Jimenez Shaw
to list all geoid model names that apply to a vertical CRS
2021-04-23Database: update to EPSG v10.019Even Rouault
Non-trivial updates: - some vertical CRS are now encoded as DerivedVerticalCRS. e.g EPSG:8228 "NAVD88 height (ft)", with base EPSG:5703 "NAVD88 height". As we don't have support in our PROJ db model for DerivedVerticalCRS, modify the import script to 'resolve' the derivation up to the original datum. - Method EPSG:1069 'Change of Vertical Unit' is no longer used. It is replaced by a generic-purpose EPSG:1104 method that doesn't take any conversion factor. And generic conversions EPSG:7812 and EPSG:7813 are now used in concatenated operations, which require code changes as well.
2021-04-18Added proj_get_celestial_body_list_from_database (#2674)Alan D. Snow
Closes #2667
2021-04-12Add proj_get_celestial_body_name() and make ↵Even Rouault
proj_get_crs_info_list_from_database() filter on and return celestial body name
2021-04-11projinfo: add a --normalize-axis-order undocument switchEven Rouault
2021-04-10Add UnitOfMeasure::FOOT and US_FOOTEven Rouault
2021-03-15SQL output: add capability to restrict the authorities into which to look ↵Even Rouault
for intermediate objects
2021-03-15Add C/C++ API to get SQL statements to insert a CRS into databaseEven Rouault
2021-03-07typo fixesEven Rouault
2021-03-07BaseObject: add a move assignment operator (CID 314820)Even Rouault
2021-03-06UnitOfMeasure: add a move assignment operator (CID 314811)Even Rouault
2021-03-03Reformat code with clang-format-10 from ubuntu 20.04Even Rouault
2021-02-22Formatting fixEven Rouault
2021-02-13BUG: Close database connection if autoclose set to Truesnowman2
2020-12-12Split coordinateoperation.cpp in many files in iso19111/operation directoryEven Rouault
The big size of coordinateoperation.cpp could require significant amount of RAM to build it with -O2 level, and cause compiler crashes in some environments.
2020-12-02Merge pull request #2444 from rouault/topocentricEven Rouault
Add +proj=topocentric geocentric->topocentric conversion (fixes #500)
2020-11-29Merge pull request #2450 from rouault/setAllowEllipsoidalHeightAsVerticalCRSEven Rouault
Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDAL
2020-11-27crs.hpp: add cppcheck suppression for cppcheck 1.90 of ubuntu 20.04Even Rouault
2020-11-24Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDALEven Rouault
as CompoundCRS with a VerticalCRS being an ellipsoidal height, which is not conformant. But needed for LAS 1.4 that only supports WKT1
2020-11-23Add +proj=topocentric geocentric->topocentric conversion (fixes #500)Even Rouault
2020-11-21Make GeographicCRS/GeodeticCRS::isEquivalentTo() work properly when ↵Even Rouault
comparing to a DerivedGeographicCRS/DerivedGeodeticCRS
2020-11-04createBoundCRSToWGS84IfPossible(): make it return same result with a CRS ↵Even Rouault
built from EPSG code or WKT1 Related to https://github.com/OSGeo/gdal/issues/3144
2020-11-01projinfo / createObjectsFromName(): support returning a datum ensembleEven Rouault