aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-02-10Allow a BoundCRS to use a PROJ string transformationEven Rouault
Related to https://lists.osgeo.org/pipermail/proj/2021-February/010040.html Given test.wkt with ``` BOUNDCRS[ SOURCECRS[ GEOGCRS["unknown", DATUM["Unknown based on GRS80 ellipsoid", ELLIPSOID["GRS 1980",6378137,298.257222101, LENGTHUNIT["metre",1], ID["EPSG",7019]]], PRIMEM["Greenwich",0, ANGLEUNIT["degree",0.0174532925199433], ID["EPSG",8901]], CS[ellipsoidal,2], AXIS["longitude",east, ORDER[1], ANGLEUNIT["degree",0.0174532925199433, ID["EPSG",9122]]], AXIS["latitude",north, ORDER[2], ANGLEUNIT["degree",0.0174532925199433, ID["EPSG",9122]]]]], TARGETCRS[ GEOGCRS["WGS 84", DATUM["World Geodetic System 1984", ELLIPSOID["WGS 84",6378137,298.257223563, LENGTHUNIT["metre",1]]], PRIMEM["Greenwich",0, ANGLEUNIT["degree",0.0174532925199433]], CS[ellipsoidal,2], AXIS["latitude",north, ORDER[1], ANGLEUNIT["degree",0.0174532925199433]], AXIS["longitude",east, ORDER[2], ANGLEUNIT["degree",0.0174532925199433]], ID["EPSG",4326]]], ABRIDGEDTRANSFORMATION["Transformation from unknown to WGS84", METHOD["PROJ-based operation method: +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=cart +ellps=GRS80 +step +proj=helmert +convention=coordinate_frame +exact +step +inv +proj=cart +ellps=WGS84 +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg"]]] ``` ``projinfo -s @test.wkt -t "WGS 84" -o PROJ -q`` outputs: ``` +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=cart +ellps=GRS80 +step +proj=helmert +convention=coordinate_frame +exact +step +inv +proj=cart +ellps=WGS84 +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg ```
2021-02-09Database: update to EPSG v10.013Even Rouault
2021-02-09createOperations(): remove involved logic that was done for GDA94 -> WGS84 ↵Even Rouault
(G1762) It is no longer needed for that particular case, since there's now a concatenated operation for it. It could in theory be useful for other cases, but removing it doesn't break existing tests, so...
2021-02-07Merge pull request #2511 from mwtoews/remove-cmake-configurations-8.0Kristian Evers
CMake: remove old configuration option aliases
2021-02-07Merge pull request #2476 from rouault/fix_2399Kristian Evers
Add build time option to make PROJ_LIB env var tested last (fixes #2399)
2021-02-07Merge pull request #2503 from havingsexonthebeach/epsg10_011Kristian Evers
Database: update to EPSG v10.011
2021-02-03CMake: remove old configuration option aliasesMike Taves
2021-01-15Database: update to EPSG v10.011Modern Slave
2021-01-14createOperations(): fix bug involving geoidmodel and non-metre vertical unitEven Rouault
2021-01-13createOperations(): fix Compound to Geog3D/Projected3D CRS with non-metre ↵Even Rouault
ellipsoidal height
2021-01-12ellps_size(): do not log error if ellipsoid absent and not neededEven Rouault
2021-01-05createFromUserInput(): accept leading white space (fixes #2498)Even Rouault
2020-12-28C API: add proj_crs_is_derived()Even Rouault
2020-12-16cs2cs: add --no-ballpark and --accuracy optionsEven Rouault
2020-12-15proj_create_crs_to_crs_from_pj(): add ACCURACY and ALLOW_BALLPARK optionsEven Rouault
2020-12-15projinfo: add a --accuracy option to define the minimum accuracyEven Rouault
2020-12-15Remap ENOMEM from PROJ_ERR_INVALID_OP to PROJ_ERR_OTHEREven Rouault
2020-12-15horner.cpp: remove uses of EINVAL and EDOM errnoEven Rouault
2020-12-15Remove internal use of PJ_LOG_DEBUG_MINOR and PJ_LOG_DEBUG_MAJOREven Rouault
2020-12-15Various operations: remove explicit short name prefixing in log messages now ↵Even Rouault
that it is automatically added
2020-12-15proj_log_XXX functions(): add the short name of the operation as prefix in ↵Even Rouault
the error message
2020-12-15proj_trans_array(): make it transform all coordinates even when an error occursEven Rouault
2020-12-15tmerc exact: set errno to PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN ↵Even Rouault
when it returns invalid coordinate
2020-12-15Revise error codes to have a reduced set exposed in the public API.Even Rouault
Fixes #2482 And also add proj_context_errno_string() Revise gie 'expect failure errno XXXX' strings
2020-12-15Remove ancient no longer used implementation of pj_ell_set()Even Rouault
2020-12-15Move proj_log_XXX() functions from internal.cpp to log.cppEven Rouault
2020-12-14createOperations(): fix inconsistent chaining exception when transforming ↵Even Rouault
from BoundCRS of projected CRS based on NTF Paris to BoundCRS of geog CRS NTF Paris. Fixes https://github.com/OSGeo/gdal/issues/3273
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-02cs2cs / proj_create_crs_to_crs_from_pj(): add a --authority switch to ↵Even Rouault
control where coordinate operations are looked for (fixes #2442)
2020-12-02Add build time option to make PROJ_LIB env var tested last (fixes #2399)Even Rouault
If PROJ is built with the PROJ_LIB_ENV_VAR_TRIED_LAST CMake option / --enable-proj-lib-env-var-tried-last configure switch, then the hard-wired path ($prefix/share/proj) will be tried before looking at the environment PROJ_LIB.
2020-12-02fix buildEven Rouault
2020-12-02Merge pull request #2444 from rouault/topocentricEven Rouault
Add +proj=topocentric geocentric->topocentric conversion (fixes #500)
2020-11-30Merge pull request #2474 from rouault/database_version_numberEven Rouault
Database: add metadata with the version number of the database layout …
2020-11-30Merge pull request #2466 from rouault/fix_2423Even Rouault
cs2cs: add --area and --bbox options to restrict candidate coordinate operations (fixes #2423)
2020-11-30Merge pull request #2471 from rouault/extent_spherical_tmerc_domainEven Rouault
Spherical tmerc forward: do not restrict to [-90,90] longitude range
2020-11-30Database: add metadata with the version number of the database layout and ↵Even Rouault
check it in the code This is aimed at detecting running a PROJ version against a proj.db that is not meant to work with it. This happens sometimes in complex setups mixing PROJ versions. Hopefully this will help spotting the issue earlier.
2020-11-30API cleanup: unexport number of internal symbols, and remove/replace a few ↵Even Rouault
unused ones
2020-11-30pj_datum_set(): make code more obvious to humans and analyzersEven Rouault
2020-11-29Spherical tmerc forward: do not restrict to [-90,90] longitude rangeEven Rouault
The restriction was a copy&paste from the Evenden/Snyder approximate ellipsoidal implementation, but the spherical one is exact, so this restriction isn't needed. Also tune a bit the handling of lat=0, |lon| > 90
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-29Inverse tmerc spherical: fix wrong sign of latitude when lat_0 is used ↵Even Rouault
(fixes #2468) Corrected formula given by @evanmiller
2020-11-28createOperations(): get a '+proj=noop' instead of '+proj=affine +s33=-1' ↵Even Rouault
when attempting (non-sensical) EPSG:3855 to EPSG:4326
2020-11-28WKT1 import: better deal with apps.epsg.org output w.r.t datum ensemble namesEven Rouault
2020-11-28proj_create_crs_to_crs_from_pj(): do not use ↵Even Rouault
PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified
2020-11-28cs2cs: add --area and --bbox options to restrict candidate coordinate ↵Even Rouault
operations (fixes #2423)
2020-11-28Use same arguments to printf format string for both radians and degrees in ↵Houder
output by cct (#2453) Currently the output of the cct utility is different between radians and degrees (as expected by cct), because of a bug in cct: $ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad 1.0000000000 2.0000000000 0.0000 0.0000 $ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=deg 1.0000 2.0000 0.0000 0.0000 The arguments to the printf format string are as follows: * radians: width 14, precision 10 * degrees: width 13, precision 4 (this is by mistake. bug!) After the suggested fix has been applied, output will be the same for both radians and degrees: $ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad 1.0000000000 2.0000000000 0.0000 0.0000 $ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=deg 1.0000000000 2.0000000000 0.0000 0.0000 The cause of the bug is that cct does test if it "has radians to output", but "neglects" to test if it "has degrees to output", resulting in using different arguments to the printf format string in the latter case. The fix makes cct test if it "has either radians or degrees to output".
2020-11-28createObjectsFromName(): in exact match, make looking for 'ETRS89 / UTM zone ↵Even Rouault
32N' return only the exact match
2020-11-27Merge pull request #2455 from rouault/primem_fixesEven Rouault
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
2020-11-27formatting fixesEven Rouault
2020-11-27PRIMEM WKT handling: fixes on import for 'sexagesimal DMS' or from ↵Even Rouault
WKT1:GDAL/ESRI when GEOGCS UNIT != Degree; morph to ESRI the PRIMEM name on export