aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/c_api.cpp
AgeCommit message (Collapse)Author
2020-01-23Fix wrong use of derivingConversionRef() that caused GDAL bugEven Rouault
Hopefully final cut at solving the same class of bug that the one that affected QGIS in December. This time, this hit GDAL in the situation of https://lists.osgeo.org/pipermail/gdal-dev/2020-January/051500.html The bug fix for that particular issue is in PROJStringParser::createFromPROJString() But grepping more in the code base, I could find other potential smelly situations (might not be issues, but better be safe than sorry), so let's fix them too. Bottom line is: derivingConversionRef() should *only* be used for consultation, and never to create a new ProjectedCRS()
2019-12-16identify(): take into datum name aliases (fixes #1800)Even Rouault
2019-12-14Add proj_coordoperation_create_inverse to C API (#1795)Nyall Dawson
2019-11-25Merge pull request #1737 from rouault/proj_create_derived_geographic_crsKristian Evers
Add proj_create_derived_geographic_crs() and proj_create_conversion_pole_rotation_grib_convention() to address GRIB datasets using a pole rotation method
2019-11-25Doc: change 7.0 references to 6.3Even Rouault
2019-11-22Add proj_create_derived_geographic_crs() and ↵Even Rouault
proj_create_conversion_pole_rotation_grib_convention() to address GRIB datasets using a pole rotation method
2019-11-18proj_trans(): tune selection of operation when there are several ↵Even Rouault
alternatives, to select the operation with best accuracy
2019-11-17typo fix in comment [ci skip]Even Rouault
2019-11-14import/export PROJJSON: support a interpolation_crs key to geoid_model for ↵Even Rouault
faithful serialization of the geoid_geog_crs parameter of proj_create_vertical_crs_ex()
2019-11-14Code reformatEven Rouault
2019-11-09Doc: document oddity related to identification of CRS from ESRI WKTEven Rouault
Or more generally formulations that don't have an explicit axis order. Refs https://github.com/pyproj4/pyproj/issues/475 projinfo 'GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]' returns EPSG:4326 with 100% confidence. But its axis order is not the same as EPSG:4326. I've pondered about this, like decreasing the confidence of the match, but this would have downstream effects on GDAL (shapefiles with the above content in a .prj would no longer be identified as EPSG:4326). So for now, document that oddity.
2019-11-04proj_create_vertical_crs(): enhance docEven Rouault
2019-11-04Merge remote-tracking branch 'origin/master' into geoid_modelEven Rouault
2019-11-02Add a geoid_model name in database, use GEOIDMODEL for transformations, add ↵Even Rouault
a proj_create_vertical_crs_ex()
2019-10-30createFromWkt(): be tolerant to missing scale_factor parameter (fixes #1700)Even Rouault
This is invalid WKT, but GDAL 2.4 used to accept it and make a reasonable use of it... Currently we default it to 0 which is non sensical. Better use 1 as GDAL 2.4 did, and emit a warning. Other fix: proj_create_from_wkt() was documented to operate by default in non-strict validation mode, but it was actually in strict mode. So do as documented.
2019-10-24Generalize generalize_proj_crs_create_bound_vertical_crs_to_WGS84()Even Rouault
In recent commits, we added a generalize_proj_crs_create_bound_vertical_crs_to_WGS84() function, but there are situations where more accurate results can be obtained, if instead of specifying WGS84 as the hub CRS, the user can specify the exact hub CRS. For example the GEOID2018 grid is against NAD83(2011). So replace this function with proj_crs_create_bound_vertical_crs()
2019-10-04Add a proj_crs_demote_to_2D(). Useful if forced to export a 3D CRS to a best ↵Even Rouault
approximate as WKT1 that doesn't support it
2019-10-04proj_normalize_for_visualization(): make it work with CRS objectsEven Rouault
2019-10-02Add API and WKT mapping for 'nsper' to EPSG Vertical Persepective methodEven Rouault
Relates to https://github.com/OSGeo/gdal/issues/1856
2019-09-23Document the autopromotion to 3D when mix of 2D/3D CRS in ↵Even Rouault
createOperations(), and test it (fixes #1623)
2019-09-12C API: add proj_crs_create_bound_vertical_crs_to_WGS84()Even Rouault
2019-09-11API: add CRS::promoteTo3D(), proj_crs_promote_to_3D() and ↵Even Rouault
proj_crs_create_projected_3D_crs_from_2D() (fixes #1587) Also add a --3d switch to projinfo
2019-09-08Merge pull request #1585 from rouault/replace_2018_by_2019Kristian Evers
Use in API and utilities WKT2_2019 instead of WKT2_2018 (fixes #1578)
2019-09-08Use in API and utilities WKT2_2019 instead of WKT2_2018 (fixes #1518)Even Rouault
- C API: PJ_GUESSED_WKT2_2019 is added, PJ_GUESSED_WKT2_2018 aliased to it - C API: PJ_WKT2_2019[_SIMPLIFIED] is added, PJ_WKT2_2018[_SIMPLIFIED] alias to it - C++ API: similarly for WKTFormatter::Convention::WKT2_2019[_SIMPLIFIED] Those above changes should be fully backward API and ABI compatible. projinfo changes: - accept WKT2_2019 as value for -o switch. WKT2_2018 is still accepted (undocumented) - output now uses 'WKT2_2019 string:', so might break scripts that would rely on that. Other internal code references to WKT2_2018 changes to WKT2_2019, included in tests.
2019-09-05BUG: add SANITIZE_CTX for coordoperation is_instantiable and ↵snowman2
has_ballpark_transformation
2019-09-04C API: add proj_create_ellipsoidal_3D_cs()Even Rouault
2019-08-20C API: add proj_context_set_autoclose_database() to automatically close ↵Even Rouault
database (fixes #1565)
2019-08-20Merge pull request #1547 from rouault/json_exportEven Rouault
Add CRS JSON export (refs #1545)
2019-08-17PROJJSON: rename file as projjson.schema.json, and add versionning to it and ↵Even Rouault
to exported PROJJSON strings
2019-08-09C API: add proj_as_projjson()Even Rouault
2019-07-19Add set discard superseded method to api (#1534)Matt Littlemore
Closes #1519
2019-07-01C API: add proj_concatoperation_get_step_count() and ↵Even Rouault
proj_concatoperation_get_step()
2019-06-30Database: import scope/remarks for coordinate operation and add C APIEven Rouault
- Import scope and remarks for coordinate operations of the EPSG dataset. Database size goes from 5.2 MB to 5.55 MB - Add proj_get_scope() and proj_get_remarks()
2019-06-01Add proj_grid_get_info_from_database to allow retrieval of gridNyall Dawson
metadata from a grid filename
2019-05-12Fix doc of proj_identify()Even Rouault
2019-05-08proj_normalize_for_visualization(): fix crash when ctx == nullptrEven Rouault
2019-05-08proj_normalize_for_visualization(): fix when there are coordinate operation ↵Even Rouault
alternatives
2019-04-22code format fixEven Rouault
2019-04-18Improve doc of proj_coordoperation_get_towgs84_values() (fixes #1430)Even Rouault
2019-04-02Make sure that ISO19111 C++ code sets pj_errno on errorsKristian Evers
2019-04-02Merge pull request #1391 from kbevers/noopKristian Evers
Add no-op operation. It does nothing.
2019-03-29Adopt use of the noop conversion in ISO19111 codeKristian Evers
2019-03-29Add proj_normalize_for_visualization()Even Rouault
Fixes #1301 This function takes the output PJ from proj_create_crs_to_crs(), and add (or undo) the needed axis swap operations so that the object returned by proj_normalize_for_visualization() has the usual GIS axis order. In this implementation, this does something only if the coordinate system of the source or target CRS, geographic or projected, has NORTH, EAST ordering. CompoundCRS wrapping those objects are also handled.
2019-03-28Objet -> ObjectNyall Dawson
2019-03-26c_api.cpp: avoid mixing enum types. Coverity CID 193542Even Rouault
2019-02-20typo fixes: s/Explictly/Explicitly/ and s/instanciat/instantiat/Even Rouault
2019-02-20CoordinateOperation: add a hasBallparkTransformation() method that can be ↵Even Rouault
used to know if it includes a very approximative transformation term
2019-02-17Modify the default strategy of researching intermediate CRS to do it only if ↵Even Rouault
there is no direct transformation
2019-02-16Make sure proj_get_source_crs() and proj_get_target_crs() work on 'pseudo' ↵Even Rouault
PJ object returned by proj_create_crs_to_crs() when there are several alternatives
2019-02-11Make tmerc an alias for etmerc. (#1234)Kristian Evers
* Make tmerc an alias for etmerc This switches the algorithm used in tmerc to the Poder/Engsager tmerc algorithm. The original tmerc algorithm of Evenden/Snyder origin can still be accessed by adding the +approx flag when initializing a tmerc projection. The +approx flag can also be used when initializing UTM projections, in which case the Evenden/Snyder algorithm is used as well. If a tmerc projection is instantiated on a spherical earth the Evenden/Snyder algorithm is used as well since the Poder/Engsager algorithm is only defined on the ellipsoid. +proj=etmerc can still be instantiated for backwards compatibility reasons. Co-authored-by: Kristian Evers <kristianevers@gmail.com> Co-authored-by: Even Rouault <even.rouault@spatialys.com>