aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-02-02Merge pull request #755 from mloskot/ml/remove-vb6Kristian Evers
Remove COM/VB6 cruft
2018-02-02Merge pull request #754 from mloskot/ml/remove-winceKristian Evers
Remove Windows CE cruft (wince/msvc80)
2018-02-01Make sure to mark parameters used when found with pj_param_exists. Closes #752Kristian Evers
2018-02-01Updated HOWTO-RELEASE to reflect the current state of affairs [skip ci]Kristian Evers
2018-02-01Bump various version numbers in preparation for v. 5.0.0Kristian Evers
2018-02-01Updated README for version 5.0.0 release.Kristian Evers
2018-02-01Updated NEWS for version 5.0.0 release.Kristian Evers
2018-02-01Remove COM/VB6 cruftMateusz Loskot
2018-02-01Remove Windows CE cruft (wince/msvc80)Mateusz Loskot
Closes #582
2018-02-01expand proj_geoc_lat to proj_geocentric_latitude (#751)Thomas Knudsen
2018-02-01Update datatype and function reference to reflect recent code changes [skip ci]Kristian Evers
2018-02-01Merge pull request #750 from busstoptaktik/return_derivs_in_factorKristian Evers
make local derivatives available in PJ_FACTOR
2018-02-01make local derivatives available in PJ_FACTORThomas Knudsen
2018-02-01Merge pull request #749 from kbevers/clean-proj.defKristian Evers
Remove unnecessary functions and restructure proj.def.
2018-02-01Remove unnecessary functions and restructure proj.def. Closes #728Kristian Evers
2018-02-01Merge pull request #731 from busstoptaktik/4D-API_cs2cs-styleThomas Knudsen
[WIP] 4D API cs2cs style
2018-01-31Renamed PJ_IO_UNITS_RADIANS to PJ_IO_UNITS_ANGULARThomas Knudsen
2018-01-31Test material for the cs2cs emulation in the 4D API.Kristian Evers
The GIGS tests that are known to work are added to the CMake test setup. The GIGS gie files have been auto-translated from the existing json-files and some corrections to tolerances have been necessary since gie uses different norms than GIGS specify. The GIGS tolerances are specified as the infinity norm of angular coordinates, whereas gie uses the actual distances between calculated and expected coordinates (using geodesics). In a few tests +towgs84 is overriden from the EPSG inits to avoid creeping numerical inaccuracy in roundtrips. Co-authored-by: Thomas Knudsen <thokn@sdfe.dk> Co-authored-by: Kristian Evers <kristianevers@gmail.com>
2018-01-31proj_roundtrip: simplify control logicThomas Knudsen
2018-01-31Introduce compatibility for cs2cs-style proj-strings into the 4D API.Thomas Knudsen
Parameters such as towgs84, nadgrids and geoidgrids was previously only handled by pj_transform(). This commit add a compatibility layer in proj_create() by calling the pj_cs2cs_emulation_setup() function. This function sets up a handful of predefined transformation objects on the PJ object that is being created. Each of these transformation objects are related to the cs2cs-style parameters we are trying to emulate in the 4D API. That is, if the +towgs84 parameters is used we create P->helmert with the parameters specified in +towgs84. Similarly for +axis, +nadgrids and +geoidgrids. When these transformation objects exists we use them in the prepare and finalize functions in pj_fwd/ pj_inv. If no cs2cs-style parametes are specified we skip those parts of the prepare and finalizing steps. Co-authored-by:Thomas Knudsen <thokn@sdfe.dk> Co-authored-by:Kristian Evers <kristianevers@gmail.com>
2018-01-31Merge pull request #748 from kbevers/has_inverseKristian Evers
Add pj_has_inverse().
2018-01-31Add pj_has_inverse().Kristian Evers
With the introduction of the "inverted" flag on PJ objects you can no longer rely on checking that the inv, inv3d and inv4d functions are available on said PJ object. The function is used internally a few places and otherwise exposed in proj_api.h to ensure that users of the old programming interface can safely check if an operation has an inverse.
2018-01-26Make sure to mark +proj param used so it shows up in the definition. Fixes #744.Kristian Evers
2018-01-25Fix null pointer dereference in pj_datum_tranform() caused by ↵Even Rouault
d0dbf48438f9e152314abf294467cb54f9ae0e70 changes. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5649. Credit to OSS Fuzz
2018-01-23Merge pull request #743 from kbevers/fix-nullgrid-datumtransformKristian Evers
Handle ellipsoid parameters correctly when using +nadgrids=@null.
2018-01-23Handle ellipsoid parameters correctly when using +nadgrids=@null. Fixes #22.Kristian Evers
Make sure to not change ellipsoid parameters to WGS84 when applying the null grid. Coordinates will still refer to the input ellipsoid so we keep the original parameters which in turn will be used when the coordinates are transformated to/from cartesian/geocentric space. Adjusted regression test material in nad/proj_outIGNF.dist slightly to accomodate numerical differences at the mm level. The transformations in question are at best accurate to about 1m so this shouldn't change real world usage of these transformations.
2018-01-22Adding rudimentary docs for the pipeline operation [skip ci].Kristian Evers
2018-01-22Add details about grid file formats in relevant sections of the ↵Kristian Evers
documentation [skip ci]
2018-01-22Add deformation docs-page (missing from previous commit) [skip ci]Kristian Evers
2018-01-17Merge pull request #739 from kbevers/pipeline-inverseKristian Evers
Pipeline and cct inverse fixes
2018-01-17Adding a few more test cases for pipeline, ensuring better test coverageKristian Evers
2018-01-17Fix "double inversions" in pipelines, require a defined forward operation.Kristian Evers
"+proj=pipeline +inv +step +urm5 +n=0.5 +inv" now works as expected, returning the forward operation of urm5. In principle adding more +inv's should also work, resulting in the forward operation when an even number of +inv's are present, and the inverse when an odd number of +inv's are present. "+proj=pipeline +step +urm5 +n=0.5 +inv" fails at initialization since no forward operation can be performed. This is a new requirement, but aligns perfectly with the rest of the library since no operation without a forward method exists.
2018-01-11Merge pull request #737 from rouault/axisswap_add_breakEven Rouault
axisswap initialization: avoid switch case fallthrough
2018-01-11Set inv*-functions to zero on pipeline PJ's where an inverse does not exist.Kristian Evers
Some projections do not have an inverse mapping. If such a projection is used as a (forward) step in a pipeline we won't be able to perform an inverse operation using the pipeline. By setting the inv, inv3d and inv4d pointers to zero we signal to the caller that an inverse mapping is not available.
2018-01-11Fail gracefully when invalid inverse operation is specified in cct.Kristian Evers
Similar to proj and cs2cs, cct now returns immediately when trying to do an inverse operation that is not possible, for example using proj=urm5 which doesn't have an inverse: $ cct.exe -I +proj=pipeline +step +proj=urm5 +n=0.5 Inverse operation not available
2018-01-11axisswap initialization: avoid switch case fallthroughEven Rouault
case without break are really confusing, and should be avoided as much as possible IMHO. Also error out if a unrecognized character is provided as the axis value.
2018-01-11Fix breakage of previous commit (bis)Even Rouault
2018-01-11Fix breakage of previous commitEven Rouault
2018-01-11PJ_axisswap.c: validate axis value. Fixes ↵Even Rouault
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5073. Credit to OSS Fuzz. master only
2018-01-10Merge pull request #734 from aaronpuchert/remove-unused-macrosKristian Evers
Remove or use unused macros
2018-01-09Add gie tests to autoconf makefile.Kristian Evers
Download grid files as the first thing in the travis install script and that 'make check' can be run without errors caused by missing grids.
2018-01-09Convert GIGS tests to gie format and add to CMake testsKristian Evers
2018-01-09Add gie tests to CMake testing facilityKristian Evers
2018-01-09Added json to gie conversion scriptKristian Evers
2018-01-09Remove or use unused macrosAaron Puchert
Some macros seemed to be leftover from earlier code, so I removed them. Others seemed like they should have been used, but weren't. There should be no functional change, except the following: in floating- point arithmetic, x / y is not the same as x * (1.0 / y). It can be argued that using the multiplication is significantly faster, and the algorithm is approximative anyway. Otherwise, the constants are obviously not required. Also fixes one location in PJ_aitoff.c, where an enumeration value should have been used.
2018-01-08Allow usage of classic +axis parameter in axisswap.Kristian Evers
Instead of +order the classic PROJ.4 parameter +axis can used instead. This is mostly an inititive to simplify backwars compatibility in the 4D API. P->axis is initialized in pj_init() it can be assumed that it is set up correctly. +order and +axis are mutually exclusive.
2018-01-08Discern between 2D projected and 3D cartesian linear units (#732)Thomas Knudsen
2018-01-06Remove unused typedef from pj_init.cThomas Knudsen
2018-01-06Remove superfluous self-assignment in phi12Thomas Knudsen
2018-01-06Repair ratio numbers for units in pj_init_ctxThomas Knudsen