aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111/factory.cpp
AgeCommit message (Collapse)Author
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
2020-10-11Database query: add ↵Even Rouault
AuthorityFactory::ObjectType::DYNAMIC_GEODETIC_REFERENCE_FRAME and DYNAMIC_VERTICAL_REFERENCE_FRAME, and make corresponding C API work
2020-10-11Database: add a frame_reference_epoch column in vertical_datum to be able to ↵Even Rouault
handle dynamic vertical datums, and instanciate them properly from database
2020-10-08createGeodeticCRS(): more DatumEnsemble compatibility in the case when ↵Even Rouault
creating from text_definition
2020-10-08Add a AuthorityFactory::createDatumEnsemble() method, and make it inherit ↵Even Rouault
from ObjectUsage as mandated by ISO 19111:2019
2020-10-08Database: add aliases for 'old' names of WGS84 and ETRS89 datums, and remove ↵Even Rouault
one hack
2020-10-08getCRSInfoList(): make it use area descriptionEven Rouault
2020-10-08Database: use extended description for extent/area of use, as done by ↵Even Rouault
epsg.org WKT export
2020-10-06Database: instanciate DynamicGeodeticReferenceFrame (things like ITRFxxx, ↵Even Rouault
WGS 84 (Gxxxx), etc.) when possible
2020-10-06Database: "minimal" update to EPSG v10.003Even Rouault
Content mostly unchanged since v9.9 This update is "minimal" in that it mostly reflects the removal of the 'area' table, replaced now by 'extent', 'scope' and 'usage' Other new aspects of EPSG v10 are left aside.
2020-08-26proj_create_vertical_crs_ex(): add a ACCURACY option to provide an explicit ↵Even Rouault
accuracy, or derive it from the grid name if it is known
2020-08-21createObjectsFromName(): add back case insensitivity when comparing namesEven Rouault
Fixes #2332 Didn't affect released versions
2020-08-07ProjectedCRS::identify(): fix to be able to identify EPSG:2154 as a ↵Even Rouault
candidate for 'RGF93_Lambert_93' (contributes to fixes https://github.com/qgis/QGIS/issues/32255) (#2315)
2020-05-25Fix identification of (one of the) ESRI WKT formulations of EPSG:3035Even Rouault
Fixes https://github.com/qgis/QGIS/issues/36111
2020-05-24Database: import scope and remarks for conversion (fixes #2237)Even Rouault
2020-05-24Database: add a same_source_target_crs column to supersession tableEven Rouault
This is in preparation for EPSG 9.8.11 import that supersedes a number of grid transformation for US transformations, but the superseded and replacement transformations don't operate on the same (source_crs, target_crs), which is a bit weird. So in that situation, ignores the supersession.
2020-05-19Add runtime checking that sqlite3 is >= 3.11Even Rouault
``` $ LD_LIBRARY_PATH=$HOME/install-sqlite-3.8.2/lib PROJ_DEBUG=1 src/projinfo -s @in.wkt -t @out.wkt --spatial-test intersects >/dev/null SQLite3 version is 3.8.2, whereas at least 3.11 should be used ```
2020-05-15AuthorityFactory::createObjectsFromName(): request SQL query to avoid ↵Even Rouault
warning about lack of object_view(table_name) index
2020-05-14createObjectsFromName(): fix when objectType = { GEOCENTRIC_CRS }Even Rouault
2020-04-17createFromCoordinateReferenceSystemCodes(): 'optimization' to avoid using ↵Even Rouault
C++ exceptions (#2160)
2020-04-14lookForGridAlternative(): fix bug with Dutch 2008 gridsEven Rouault
2020-04-14ProjectedCRS identification: deal with switched 1st/2nd std parallels for ↵Even Rouault
LCC_2SP (#2150) As switching the 2 standard parallels for Lambert Conformal Conic 2 standard parallels result in a equivalently numerical projection definition, take that into account when querying the database.
2020-03-30ESRI_WKT ingestion: make sure to identify to non-deprecated EPSG entry when ↵Even Rouault
possible (fixes #2116)
2020-03-12Add proj_get_units_from_database() (fixes #2004)Even Rouault
2020-03-06Typo fixes identified by scripts/fix_typos.shEven Rouault