aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_c_api.cpp
AgeCommit message (Collapse)Author
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-20PROJStringFormatting: change order of emission of push/pop w.r.t axis ↵Even Rouault
swap/unitconvert to avoid useless simplification rules
2019-02-20Vertical CRS transformation: synthetize a vertical unit change ↵Even Rouault
transformation when needed, and also sort Null geographic offset transformation in last
2019-02-17Modify the default strategy of researching intermediate CRS to do it only if ↵Even Rouault
there is no direct transformation
2019-02-13EPSG Helmert and Molodensky-Badekas methods in the Geographic 2D domain: use ↵Even Rouault
the push/pop v_3 operator to preserve the Z component
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>
2019-02-07Rename proj_crs_list_destroy() to proj_crs_info_list_destroy()Even Rouault
2019-02-07Add proj_get_crs_info_list_from_database()Even Rouault
This method is intended to be used typically by GUI that lists all possible CRS. What is does could be done by previously existing functions, but it is much faster. It typically runs in less than 0.1s (hot run) versus ~0.5s with the method that consists in enumerating all codes and instanciating a PJ object for each of them.
2019-01-17Remove proj_create_from_proj_string() and proj_create_from_user_input(), and ↵Even Rouault
make proj_create() do more or less what proj_create_from_user_input() did before (fixes #1214)
2019-01-17import/export PROJ strings from ISO19111 code: require/output +type=crs for ↵Even Rouault
CRS objects (refs #1214)
2019-01-08ISO19111: remove PROJ.5 specific format for CRS (refs #1214)Even Rouault
As discussed in https://github.com/OSGeo/proj.4/issues/1214#issuecomment-452084720, the introduction of a new PROJ.5 format to export CRS using pipeline/unitconvert/axisswap as an attempt of improving the PROJ.4 format used by GDAL and other products is likely a dead-end since it is still lossy in many aspects and can cause confusion with coodinate operations. Consequently the PROJ_5 convention will be identical to PROJ_4 for CRS export. Note: on the import side, I've kept the code that could parse unitconvert and axisswap when building a CRS definition from a pipeline. It is there as a hidden feature as it was kind of a tear to remove that code in case it might still be useful...
2019-01-07Update wkt2_grammar.py according to the latest draft of WKT2:2018Even Rouault
2019-01-04WKT export: no longer export Geographic 3D CRS in WKT1, unless strict mode ↵Even Rouault
is disabled
2018-12-31pj_obj_create(): avoid warning to be emitted when expot to PROJ string is ↵Even Rouault
not possible
2018-12-30Rename proj_obj_XXX as proj_XXX and PJ_OBJ_XXX as PJ_XXXEven Rouault
2018-12-30Make ISO-19111 objects of type CoordinateOperation directly usable with ↵Even Rouault
proj_trans() and similar methods
2018-12-30Remove PJ_OBJ type since it is now merged into PJEven Rouault
2018-12-17Add WKT2 grammar validationEven Rouault
2018-12-17Add WKT1 grammar validation; change prototype of proj_obj_create_from_wkt()Even Rouault
2018-12-14proj_obj_crs_alter_cs_XXX: add new parameters to set unit idEven Rouault
2018-12-14Advanced C API: add proj_obj_alter_id()Even Rouault
2018-12-14Rename proj_destroy_int_list to proj_int_list_destroy and ↵Even Rouault
proj_destroy_string_list to proj_string_list_destroy for consistency (refs #1198)
2018-12-14C API: rename recently added _unref and _free functions as _destroy (fixes ↵Even Rouault
#1198)
2018-12-14Experimental C API: add proj_obj_create_transformation()Even Rouault
2018-12-14C API: add proj_coordoperation_get_towgs84_values()Even Rouault
2018-12-13imort from WKT1: set correct CS for Transverse Mercator South OrientedEven Rouault
2018-12-13Add helpers to create polar cartesian CSEven Rouault
2018-12-12test_c_api.cpp: show that proj_obj_get_id_code() worksEven Rouault
2018-12-11API: add setters for Laborde Oblique Mercator, and add mapping to WKT1Even Rouault
2018-12-10C API: add extra output parameters to proj_coordoperation_get_param()Even Rouault
2018-12-10C API: add a proj_coordoperation_get_method_info() methodEven Rouault
2018-12-10C API: add proj_uom_get_info_from_database()Even Rouault
2018-12-10C API: add PJ_OBJ_CATEGORY_PRIME_MERIDIAN and PJ_OBJ_TYPE_PRIME_MERIDIANEven Rouault
2018-12-10proj_obj_cs_get_axis_info(): add out_unit_auth_name and out_unit_code parametersEven Rouault
2018-12-07Experimental C API: add proj_obj_query_geodetic_crs_from_datum() (for GDAL ↵Even Rouault
Idrisi driver)
2018-12-06Speed-up createBoundCRSToWGS84IfPossible()Even Rouault
2018-12-06Add API to retrieve non-deprecated equivalent of an objectEven Rouault
2018-12-06Coordinate operation search: add a authority_to_authority_preference table ↵Even Rouault
to restrict and prioritize searches
2018-12-05experimental C API: add proj_obj_convert_conversion_to_other_method()Even Rouault
2018-12-04Add proj_obj_create_vertical_crs() and proj_obj_create_compound_crs()Even Rouault
2018-12-04Improve management of 'deprecated' suffix in object namesEven Rouault
2018-12-04Improve recognition of WKT1 datum namesEven Rouault
2018-12-01Fix PROJ_GRID_AVAILABILITY_IGNOREDEven Rouault
2018-12-01importFromWKT: morph GDAL_WKT1 datum names into their EPSG spellingEven Rouault
2018-11-30API: move all advanced PJ_OBJ creation functions in a dedicated ↵Even Rouault
proj_experimental.h header
2018-11-30C API: do not 'cache' PROJ context in PJ_OBJ objectsEven Rouault
We store the PJ_CONTEXT* in the PJ_OBJ objects, but this might cause issues in multi-threaded uses. For example, before this change, let's imagie: - a PJ_OBJ is created in thread A with a PJ_CONTEXT that is specific to this thread A - PJ_OBJ is transfered to another thread that operates on it. It might thus use the PJ_CONTEXT that was TLS(A) - in the meantime thread A does completely different things, but still operate on its PJ_CONTEXT. We might get a concurrent use of the PJ_CONTEXT despite working on different PJ_OBJ Another situation is when using constructor functions that take two PJ_OBJ. Up to now, we arbitrarily selected the context of one of the arguments to attach it to the new object. So better be explicit on which context is used. For reference, in those wrappers of the C++ API, the context is mostly used for two things: - reporting C++ exceptions as PROJ errors with the error handler attached to the PJ_CONTEXT - using the database handle that is associated with the PJ_CONTEXT.
2018-11-29C API extensions and renamingEven Rouault
- proj_obj_create_projected_XXXXX() are renamed to proj_obj_create_conversion_snake_case() and just instanciate a Conversion object - Advanced manipulation functions are moved to a dedicated section at bottom of proj.h - New C API needed for GDAL OGRSpatialReference
2018-11-29Redirect epsg:XXXX and IGNF:XXXX CRS expansions to the database, and remove ↵Even Rouault
the data/epsg and data/IGNF files
2018-11-29cs2cs: upgrade to use proj_create_crs_to_crs()Even Rouault