aboutsummaryrefslogtreecommitdiff
path: root/src/4D_api.cpp
AgeCommit message (Collapse)Author
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)
2019-01-19Add support for spaces in grid name parameters (fixes #1152)Even Rouault
2019-01-18Merge pull request #1225 from aaronpuchert/add-null-checkKristian Evers
Handle allocation failure in pj_trim_argv
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-17Handle allocation failure in pj_trim_argvAaron Puchert
The function can return nullptr, if calloc fails. If we then use that nullptr in pj_init_ctx_with_allow_init_epsg, we get a crash.
2019-01-17import/export PROJ strings from ISO19111 code: require/output +type=crs for ↵Even Rouault
CRS objects (refs #1214)
2019-01-10proj_info(): report the hardcoded PROJ_LIB path in info.searchpath (if the ↵Even Rouault
env variable is not defined), and no longer report HOME that is only used for files starting with '~'
2019-01-09proj.h: add proj_context_set_file_finder() and ↵Even Rouault
proj_context_set_search_paths() (refs #1150)
2019-01-03Rename PJ_IO_UNITS_ANGULAR to PJ_IO_UNITS_RADIANSKristian Evers
This communicates better what the unit actually is. It also opens the door for potentially adding PJ_IO_UNITS_DEGREES in the future in order to coordinates in degrees correctly as well.
2019-01-02Typo fixesEven Rouault
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-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-28proj_create_crs_to_crs(): fix crash if ctx == nullptr and error is triggered ↵Even Rouault
(master only)
2018-12-27proj_create_crs_to_crs(): add debugging tracesEven Rouault