aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/factory.cpp
AgeCommit message (Collapse)Author
2021-08-15factory.cpp: fix latest clang -Wstring-concatenation (false positive) warningEven Rouault
2021-06-03factory.cpp: lint: make memoryHandle_ a unique_ptrEven Rouault
2021-06-03Run database layout checks only at first DB openingEven Rouault
2021-06-03Database: use shared sqlite handleEven Rouault
2021-06-03factory.cpp: preparation steps for global sqlite3* handle, but no functional ↵Even Rouault
change
2021-05-24DatabaseContext::getTransformationsForGridName(): make it work properly when ↵Even Rouault
different EPSG grid names map to the same PROJ grid name
2021-05-23Database: add a ANALYZE step during proj.db creationEven Rouault
This will create the sqlite_stat* table (generally sqlite_stat1). This speeds up a bit the test suite. Runtime of ``make test_cpp_api-check`` goes from the range [14.0 s, 14.6 s] to [13.0s, 13.5s] on my machine.
2021-05-12Formatting fixesEven Rouault
2021-05-04DOC: configure and add spelling wordlist; fix typos, apply Sphinx syntax (#2705)Mike Taves
2021-04-24getInsertStatementsFor(): replace while with if (master only, CID 320133)Even Rouault
2021-04-24Add proj_get_geoid_models_from_database() (#2681)Javier Jimenez Shaw
to list all geoid model names that apply to a vertical CRS
2021-04-23getInsertStatementsFor(): replace while with if (master only, CID 320133)Even Rouault
2021-04-23Database: update to EPSG v10.019Even Rouault
Non-trivial updates: - some vertical CRS are now encoded as DerivedVerticalCRS. e.g EPSG:8228 "NAVD88 height (ft)", with base EPSG:5703 "NAVD88 height". As we don't have support in our PROJ db model for DerivedVerticalCRS, modify the import script to 'resolve' the derivation up to the original datum. - Method EPSG:1069 'Change of Vertical Unit' is no longer used. It is replaced by a generic-purpose EPSG:1104 method that doesn't take any conversion factor. And generic conversions EPSG:7812 and EPSG:7813 are now used in concatenated operations, which require code changes as well.
2021-04-20run reformat_cpp.sh to fix some leftoversJavier Jimenez Shaw
2021-04-18Merge pull request #2676 from rouault/fix_geog_to_geog_deprecatedEven Rouault
createOperations(): fix Geog to Geog when one is deprecated (fix master regression)
2021-04-18createOperations(): fix Geog to Geog when one is deprecated (fix master ↵Even Rouault
regression)
2021-04-18Added proj_get_celestial_body_list_from_database (#2674)Alan D. Snow
Closes #2667
2021-04-12Add proj_get_celestial_body_name() and make ↵Even Rouault
proj_get_crs_info_list_from_database() filter on and return celestial body name
2021-04-11Reformatting fixEven Rouault
2021-04-10getCRSInfoList(): make result order deterministic (by increasing auth_name, ↵Even Rouault
code)
2021-04-10Recognize OGC:84 as an alias of OGC:CRS84Even Rouault
2021-04-10Add hard-coded definitions for OGC:AnsiDate/JulianDate/UnixTimeEven Rouault
2021-04-08Merge pull request #2647 from rouault/integer_or_textEven Rouault
Database: decrease db size
2021-04-06Database: nullify auth_name, code of usage tableEven Rouault
We never select by those columns, so don't set them. Reduce from 8.4 to 7.9 MB. Upgrade the minor version of the database layout. (that database can still be read by PROJ 8.0)
2021-04-05createOperations(): make ↵Even Rouault
createBetweenGeodeticCRSWithDatumBasedIntermediates() reachable... ... and optimize its execution time by rewriting it completely. This code path was no longer triggered in tests since EPSG got a direct transformation for GDA94 to WGS 84 (G1762).
2021-03-28createOperation(): make sure no to discard deprecated operations...Even Rouault
if the replacement uses a grid unknown to us. Fixes issue reported at https://lists.osgeo.org/pipermail/gdal-dev/2021-March/053771.html The issue comes from the fact that EPSG has created 2 transformations using grids BALR2009.gsb ad PENR2009.gsb that supersede the one which uses the single grid SPED2ETV2 we have in PROJ-data.
2021-03-19SQL output: make it possible to export non-EPSG projection methods or ↵Even Rouault
methods and params lacking an explicit EPSG id
2021-03-18createFromCRSCodesWithIntermediates(): improve perf when no matchEven Rouault
createFromCRSCodesWithIntermediates() runs a rather costly self-join. Only run it if the source and target CRS are the source/target of a coordinate operation. This helps for the performance of proj_create_crs_to_crs() when run on projected CRS for example that are extremely unlikely to be the source/target of an operation (except currently the Finish ones). For the EPSG:26915 to EPSG:3857 case of https://github.com/OSGeo/gdal/issues/3470, this helps decreasing the time of proj_create_crs_to_crs() from 18 ms to 10 ms.
2021-03-15Add support for PROJ_AUX_DB environment variable to set the path to one or ↵Even Rouault
several auxiliary DBs
2021-03-15Add proj_context_get_database_structure() to dump structure of empty valid ↵Even Rouault
auxiliary DB
2021-03-15SQL export: add support for DatumEnsembleEven Rouault
2021-03-15SQL export: add publication_date and frame_reference_epoch to datumsEven Rouault
2021-03-15SQL output: add capability to restrict the authorities into which to look ↵Even Rouault
for intermediate objects
2021-03-15Add C/C++ API to get SQL statements to insert a CRS into databaseEven Rouault
2021-03-10Code cleanup: remove conditional testing of SQLITE_OPEN_URI. It is present ↵Even Rouault
in sqlite >= 3.11
2021-03-10Fix commentEven Rouault
2021-03-07typo fixesEven Rouault
2021-03-06Fix gcc 11 -Wnonnull warningsEven Rouault
``` /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp: In function 'osgeo::proj::operation::TransformationNNPtr osgeo::proj::operation::createBallparkGeographicOffset(const CRSNNPtr&, const CRSNNPtr&, const DatabaseContextPtr&)': /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1860:36: warning: 'this' pointer is null [-Wnonnull] 1860 | ->coordinateSystem() | ^ In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35: /proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr& osgeo::proj::crs::SingleCRS::coordinateSystem() const' 196 | PROJ_DLL const cs::CoordinateSystemNNPtr &coordinateSystem() PROJ_PURE_DECL; | ^~~~~~~~~~~~~~~~ /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1864:36: warning: 'this' pointer is null [-Wnonnull] 1864 | ->coordinateSystem() | ^ In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35: /proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr& osgeo::proj::crs::SingleCRS::coordinateSystem() const' 196 | PROJ_DLL const cs::CoordinateSystemNNPtr &coordinateSystem() PROJ_PURE_DECL; | ^~~~~~~~~~~~~~~~ /proj-8.0.0/src/iso19111/factory.cpp: In member function 'std::vector<dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::operation::CoordinateOperation> > > osgeo::proj::io::AuthorityFactory::createBetweenGeodeticCRSWithDatumBasedIntermediates(const CRSNNPtr&, const string&, const string&, const CRSNNPtr&, const string&, const string&, bool, bool, bool, bool, const std::vector<std::__cxx11::basic_string<char> >&, const ExtentPtr&, const ExtentPtr&) const': /proj-8.0.0/src/iso19111/factory.cpp:4724:66: warning: 'this' pointer is null [-Wnonnull] 4724 | dynamic_cast<crs::GeodeticCRS *>(sourceCRS.get())->datum(); | ^ In file included from /proj-8.0.0/src/iso19111/factory.cpp:36: /proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr& osgeo::proj::crs::GeodeticCRS::datum() const' 254 | PROJ_DLL const datum::GeodeticReferenceFramePtr &datum() PROJ_PURE_DECL; | ^~~~~ /proj-8.0.0/src/iso19111/factory.cpp:4726:66: warning: 'this' pointer is null [-Wnonnull] 4726 | dynamic_cast<crs::GeodeticCRS *>(targetCRS.get())->datum(); | ^ In file included from /proj-8.0.0/src/iso19111/factory.cpp:36: /proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr& osgeo::proj::crs::GeodeticCRS::datum() const' 254 | PROJ_DLL const datum::GeodeticReferenceFramePtr &datum() PROJ_PURE_DECL; | ^~~~~ ```
2021-03-03Reformat code with clang-format-10 from ubuntu 20.04Even Rouault
2020-12-12Split coordinateoperation.cpp in many files in iso19111/operation directoryEven Rouault
The big size of coordinateoperation.cpp could require significant amount of RAM to build it with -O2 level, and cause compiler crashes in some environments.
2020-11-30Database: add metadata with the version number of the database layout and ↵Even Rouault
check it in the code This is aimed at detecting running a PROJ version against a proj.db that is not meant to work with it. This happens sometimes in complex setups mixing PROJ versions. Hopefully this will help spotting the issue earlier.
2020-11-28createObjectsFromName(): in exact match, make looking for 'ETRS89 / UTM zone ↵Even Rouault
32N' return only the exact match
2020-11-20Remove proj_api.hKristian Evers
Removes proj_api.h from the public API. The contents of the header file has been moved to proj_internal.h verbatim and any references to proj_api.h has been changed to proj_internal.h. The documentation of proj_api.h has been removed. The only exception to this is the API migration guides which still mention the old API. Fixes #837
2020-11-01projinfo / createObjectsFromName(): support returning a datum ensembleEven Rouault
2020-11-01When reading from database, possibly return VerticalCRS with a DatumEnsembleEven Rouault
Only occurence for now is EPSG:9451 'BI height' using the 'British Isles height ensemble'
2020-11-01When reading from database, possibly return Geographic/GeodeticCRS with a ↵Even Rouault
DatumEnsemble, typically for WGS 84 and ETRS89 ('breaking change')
2020-10-25Fix typos spotted by scripts/fix_typos.shEven Rouault
2020-10-23Add logic to handle interpolationCRS in PROJBasedOperation and ↵Even Rouault
ConcatenatedOperation
2020-10-23AuthorityFactory::createCoordinateOperation(): correctly compute accuracy of ↵Even Rouault
concatenated operation when there is a conversion step
2020-10-23Database: import ESRI VERTCS that uses a (geodetic) datum to express ↵Even Rouault
ellipsoidal height