aboutsummaryrefslogtreecommitdiff
path: root/src/proj.h
AgeCommit message (Collapse)Author
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-01Bump version numbers in preparation for 6.1.0Kristian Evers
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-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-10Doc: document interaction issues between objects create with proj_create() ↵Even Rouault
vs the ones of the C++ API (fixes #1213) (#1215)
2019-01-09proj.h: add proj_context_set_file_finder() and ↵Even Rouault
proj_context_set_search_paths() (refs #1150)
2019-01-02Typo fixesEven Rouault
2019-01-01Split ISO19111 C API docs into functions and typesKristian Evers
The rest of the C API is structured such that type definitions goes into one page and functions to another. This commit makes sure the same is done for the C bindings to the ISO19111 C++ API by defining two doxygen groups in proj.h, which is then organized into the proper pages with Sphinx and breathe.
2018-12-30Rename proj_obj_XXX as proj_XXX and PJ_OBJ_XXX as PJ_XXXEven Rouault
2018-12-30Merge projects.h into proj_internal.hEven Rouault
2018-12-30Remove PJ_OBJ type since it is now merged into PJEven Rouault
2018-12-26cpp conversion: fix zero-as-null-pointer-constant warningsEven Rouault
2018-12-17Add WKT1 grammar validation; change prototype of proj_obj_create_from_wkt()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-14C API: add proj_coordoperation_get_towgs84_values()Even 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-06Add API to retrieve non-deprecated equivalent of an objectEven Rouault
2018-12-01C API: rename parameter to reflect its output statusEven Rouault
2018-11-30API: move all advanced PJ_OBJ creation functions in a dedicated ↵Even Rouault
proj_experimental.h header
2018-11-30C API: more camel_casification of parametersEven Rouault
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: rename output parameters to have a out_ prefixEven Rouault
2018-11-29C API: replace ctxt by ctxEven Rouault
2018-11-29proj_create_crs_to_crs(): rename arguments, update doc, and add a few test casesEven Rouault
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
2018-11-22Make proj_create_crs_to_crs() use proj_obj_create_operations() and use area ↵Even Rouault
of use argument, and make createFromUserInput() recognize init=epsg: / init=IGNF: in legacy mode, that is when proj_context_get_use_proj4_init_rules() is used
2018-11-14Implement RFC 2: Initial integration of "GDAL SRS barn" workEven Rouault
This work mostly consists of: - a C++ implementation of the ISO-19111:2018 / OGC Topic 2 "Referencing by coordinates" classes to represent Datums, Coordinate systems, CRSs (Coordinate Reference Systems) and Coordinate Operations. - methods to convert between this C++ modeling and WKT1, WKT2 and PROJ string representations of those objects - management and query of a SQLite3 database of CRS and Coordinate Operation definition - a C API binding part of those capabilities This is all-in-one squashed commit of the work of https://github.com/OSGeo/proj.4/pull/1040
2018-11-10Remove proj_geocentric_latitude from public APIKristian Evers
Closes #1107
2018-10-16Move struct definitions for proj_list_* functions to proj.hKristian Evers
With projects.h not being available to outside users anymore we need to define PJ_UNITS, PJ_ELLPS, PJ_PRIME_MERIDIANS and PJ_OPERATIONS elsewhere. Related pj_get_*_ref() functions have been removed in favour of their proj_ namespaced counterparts. char pointers have been changed to const char pointers. Resolves #983 Resolved #1147 Make char pointers const
2018-09-15Bump version numbers after 5.2.0 releaseKristian Evers
2018-06-08bump version numbers to 5.2.0Kristian Evers
2018-04-19Rename level -> log_level for proj_log_level to match function definitionKurt Schwehr
Found on https://github.com/OSGeo/proj.4/commit/2f082b70cbdafdea49bb123e027406089e7ad65b http://clang.llvm.org/extra/clang-tidy/checks/readability-inconsistent-declaration-parameter-name.html function 'proj_log_level' has a definition with different parameter names src/pj_internal.c:374:14: the definition seen here src/proj.h:364:14: differing parameters are named here: ('level'), in definition: ('log_level')
2018-04-12Move logging functions to proj.h APIKristian Evers
2018-03-22proj.h: update PROJ_VERSION_MAJOR.PROJ_VERSION_MINOR to 5.1Even Rouault
This will help avoiding issues for people tracking proj master and GDAL See https://lists.osgeo.org/pipermail/gdal-dev/2018-March/048285.html
2018-03-11Merge pull request #847 from kbevers/proj_strerrnoKristian Evers
Add proj_errno_string function
2018-03-09Add proj_errno_string functionKristian Evers
Equivalent to pj_strerrno.
2018-03-08Use consistent names for PJ_COORD's in declarationsKristian Evers
Changes use of 'PJ_COORD coo' to 'PJ_COORD coord' so that variable names in public function prototypes are consistent. Closes #842.
2018-02-11Add proj_context_errno to API and missing proj_geod to proj.def (#791)Thomas Knudsen
2018-02-10Make the 4D API fully 4D (#788)Thomas Knudsen
Make 4D API fully 4D: Remove PJ_XY, PJ_LP, PJ_XYZ, PJ_LPZ etc. from the API surface and make all formal parameters of the API fully 4D PJ_COORD. This operation primarily influences the proj_XXX_dist functions, which mostly work by calling Charles Karney's geodesic subsystem, keeping the distance, and throwing away the start and end azimuths for the geodesic computed. Also a PJ_GEOD(esic) persona is introduced for the PJ_COORD type. The proj_geod function returns a PJ_GEOD, representing the geodesic between the points represented by its PJ_COORD arguments. Finally, the proj_factors functions had its lp argument changed from PJ_LP to PJ_COORD.