aboutsummaryrefslogtreecommitdiff
path: root/src/4D_api.cpp
AgeCommit message (Collapse)Author
2020-12-15proj_create_crs_to_crs_from_pj(): add ACCURACY and ALLOW_BALLPARK optionsEven Rouault
2020-12-15Remap ENOMEM from PROJ_ERR_INVALID_OP to PROJ_ERR_OTHEREven Rouault
2020-12-15proj_trans_array(): make it transform all coordinates even when an error occursEven Rouault
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-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-11-28proj_create_crs_to_crs_from_pj(): do not use ↵Even Rouault
PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified
2020-11-20Remove old pj_ memory (de)allocation functionsKristian Evers
Gone are pj_malloc, pj_calloc, pj_dalloc and pj_dealloc. Their primary function as API memory functions in proj_api.h is no longer there and the other use as a workaround for old errno problems is no longer valid either. Replaced with malloc and free across the codebase.
2020-11-20Remove pj_errno and related functionsKristian Evers
2020-11-20Remove pj_free() and move it's functional parts to proj_destroy()Kristian Evers
2020-11-20Remove pj_ctx_* functions and use their proj_context counterpartsKristian Evers
2020-10-25Fix issues spotted by cppcheckEven Rouault
2020-10-19C API: add proj_context_clone() (#2383)Alan D. Snow
Fixes #2382
2020-10-08Make proj_create_crs_to_crs() / cs2cs work with CRS with DatumEnsembleEven Rouault
2020-10-08Database: use extended description for extent/area of use, as done by ↵Even Rouault
epsg.org WKT export
2020-09-10proj_trans(): reset errno before attemptying a retry with a new coordinate ↵Even Rouault
operation (fixes #2352)
2020-05-17Merge pull request #2206 from rouault/deformation_model_for_mergeEven Rouault
Add a +proj=defmodel transformation for multi-component time-based deformation models
2020-05-09scripts/fix_typos.sh: fix URLs to dictionaries, and fix typos spottedEven Rouault
2020-05-04grids: add support for projected grids for GenericShiftGridSetEven Rouault
2020-04-12Add proj_degree_input() and proj_degree_output()Kristian Evers
Equivalent to proj_angular_input() and proj_angular_output() but checking for degree units instead. proj_create_crs_to_crs() rarely, if ever, returns pipelines that has radians as input or output so using proj_angular_*() is not a useful check for io units of pipelines. These two new functions should make life a bit easier for users that generally store there angular coordinates in radians. Closes #2027
2020-03-13Add proj_get_suggested_operation()Even Rouault
Return the index of the operation that would be the most appropriate to transform the specified coordinates. This operation may use resources that are not locally available, depending on the search criteria used by proj_create_operations(). This could be done by using proj_create_operations() with a punctual bounding box, but this function is faster when one needs to evaluate on many points with the same (source_crs, target_crs) tuple.
2020-02-27Fix warnings of latest cppcheck masterEven Rouault
2020-02-27proj_create_crs_to_crs(): avoid potential reprojection failures when ↵Even Rouault
reprojecting area of use to source and target CRS Was found with https://github.com/OSGeo/PROJ/pull/1989 when using cs2cs EPSG:4937 EPSG:31258+5778 - We do not need to do vertical transformation in that context. This failed here because the Austrian grids have nodata value outside of the shape of Austria, so the edges of the grids are mostly nodata values. - And we should avoid grid-based transformations too.
2020-02-24Expose proj_context_is_network_enabled() in C APIEven Rouault
2020-01-27projinfo: add --searchpaths switchEven Rouault
2020-01-22Merge RFC4 (#1865)Even Rouault
This commit is the result of the squashing of rfc4_dev branch in a single commit. It implements mostly RFC 4 related work. * Grid handling: - remove obsolete and presumably unfinished implementation of grid catalog functionality - all grid functionality is in grids.cpp/.hpp - vertical and horizontal grid shift: rework to no longer load whole grid into memory - remove hgrids and vgrids member from PJ structure, and store them in hgridshift/vgridshift/deformation structures - build systems: add optional libtiff dependency. Must be explicitly disabled if not desired - add support for horizontal and vertical grids in GeoTIFF, if libtiff is available - add GenericShiftGridSet and GenericShiftGrid classes, relying on TIFF grids, that can be used for generic purpose grid-based adjustment - add a +proj=xyzgridshift method to perform geocentric translation by grid. Used for French NTF to RGF93 transformation using gr3df97a.tif grid - deformation: add support for +grids= for GeoTIFF grids - horizontal grid shift: fix failures on points slightly outside a subgrid (fixes #209) * File management: - add a filemanager.cpp/.hpp to deal with file related work - test for legacy proj_api.h fileapi - proj.h: add proj_context_set_fileapi() and proj_context_set_sqlite3_vfs_name() (fixes #866) - add capability to read resource files from the user writable directory * Network access: - build systems: add optional curl dependency - add a curl-based default implementation for network related functionality - proj.h: add C API to control network functionality, and optionaly provide network callbacks - add data/proj.ini with default settings - add a SQLite3 local cache of downloaded chunks - add proj_is_download_needed() and proj_download_file() * Use Win32 Unicode APIs and expect all strings to be UTF-8 (fixes #1765) For backward compatibility, if PROJ_LIB content is found to be not UTF-8 or pointing to a non existing directory, then an attempt at interpretating it in the ANSI page encoding is done. proj_context_set_search_paths() now assumes strings to be in UTF-8, and functions returning paths will also return values in UTF-8.
2019-12-25Modify verbosity level of some debug/trace messagesEven Rouault
- unitconvert, ell_set and helmert were using debug level, which is too verbose. Using trace instead - proj_trans() was using trace to indicate the operation it selects. Changing it to debug
2019-12-24proj_trans: add retry logic to select other transformation if the best one ↵Even Rouault
fails. Relates to https://github.com/OSGeo/PROJ/issues/1808
2019-12-04proj_grid_info(): fix crash when passing a file that exists but is not a gridEven Rouault
2019-11-18proj_trans(): tune selection of operation when there are several ↵Even Rouault
alternatives, to select the operation with best accuracy
2019-11-16proj_create_crs_to_crs(): fix autoselection logic of operation to compute ↵Even Rouault
correctly the geographic coordinates of the input coord when the CRS is not Greenwich based
2019-10-28Various fixes/workarounds to make cppcheck 1.72 (Ubuntu 16.04) and ↵Even Rouault
HEAD/1.90dev happy (fixes #1648)
2019-10-12proj_create_crs_to_crs(): remove elimination of Ballpark operations that ↵Even Rouault
caused transformation failures in some cases
2019-09-26proj_create_crs_to_crs(): fix when there are only transformations with ↵Even Rouault
ballpark steps Currently we would discard all operations, resulting in a PJ object with zero candidates. Better use those operations if nothing better is available. Was seen on transforming from ETRS89 / UTM zone 31N + EGM96 height to WGS 84 (G1762). The horizontal transformation from ETRS89 to WGS 84 (G1762) is a ballpark one.
2019-09-18Delete proj_math.h. Replace includes by <math.h>; we'll see if anyoneCharles Karney
needs <limits.h>. Update scripts/reference_exported_symbols.txt and src/proj_symbol_rename.h.
2019-09-12proj_trans_generic(): properly set coordinate time to HUGE_VAL when no value ↵Even Rouault
is passed to the function
2019-09-04proj_create_crs_to_crs_from_pj(): make the PJ* arguments const PJ*Even Rouault
This will make the life of C++ users using the C API slightly easier. There's no ABI or API backward compatibility issue in doing that change as constness of arguments is not retained in the C ABI, and any non-const object passed as argument is implicitly converted as a const object if that is what is mentionned in the argument list.
2019-08-23Add proj_create_crs_to_crs_from_pj()Even Rouault
I've been frustrated a number of times with proj_create_crs_to_crs() not accepting a PJ* object for the source and target CRS. And thus constraining to go back to WKT2 in a artificial way.
2019-08-20C API: add proj_context_set_autoclose_database() to automatically close ↵Even Rouault
database (fixes #1565)
2019-06-04Fix incorrect delimator ";" used to separate proj_info().searchpath entries ↵Kristian Evers
(#1497) Fix incorrect delimator ";" used to separate proj_info().searchpath entries
2019-06-03Fix incorrect delimator ";" used to separate proj_info().searchpathNyall Dawson
entries on non-windows platforms, should be ":"
2019-06-03proj_info().searchpath should not include PROJ_LIB path ifNyall Dawson
the context search_paths is not empty The logic used when actually searching for files is that if the context search_paths are set, these completely override the PROJ_LIB variable. So we should make proj_info().searchpath correctly reflect this, and not include the PROJ_LIB path in searchpath if the context has search_paths manually set.
2019-03-26path_append(): make it clear that nullptr deref cannot happen. Coverity CID ↵Even Rouault
193530
2019-03-19proj_create_crs_to_crs: better deal with coordinates outside of bbox (fixes ↵Even Rouault
#1329) In case several coordinate operations are returned for a CRS to CRS transformation, we currently determine the one to use by selecting the first operation whose bounding box contains the input point. This commit adds a fallback case where after doing that first iteration and finding no appropriate candidate, we try again by selecting the first operation available that does not involve grid based transformations.
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-16Make sure that the PJ object returned by proj_create_crs_to_crs() is a ↵Even Rouault
proper CoordinateOperation so that we can call proj_get_source_crs() on it for example
2019-02-01Remove extreaneous semicolonEven Rouault
2019-01-26proj_trans_generic(): make it work with multiple internal coordinate ↵Even Rouault
operations (fixes #1237)
2019-01-22Merge pull request #1233 from rouault/fix_1232Kristian Evers
Coordinate operation computation with boundcrs / wktext: drop useless early bindins terms in generated pipeline (fixes #1232)
2019-01-22ISO19111 PROJ string parser: discard parameters not recognized by PROJEven Rouault
2019-01-22proj_create_crs_to_crs(): defer selection of actual coordinate operation ↵Even Rouault
until proj_trans() is called (fixes #1229)