aboutsummaryrefslogtreecommitdiff
path: root/src/iso19111
AgeCommit message (Collapse)Author
2021-05-06DOC: configure and add spelling wordlist; fix typos, apply Sphinx syntax (#2707)Mike Taves
2021-04-23ConcatenatedOperation::fixStepsDirection(): fix potential nullptr dereferenceEven Rouault
2021-04-12CRS::normalizeForVisualization(): propagate domains/extent of original CRS ↵Even Rouault
(fixes #2603)
2021-04-10Merge pull request #2660 from rouault/getCRSInfoList_deterministic_result_orderEven Rouault
getCRSInfoList(): make result order deterministic (by increasing auth_name, code)
2021-04-01Merge pull request #2625 from rouault/epsg_10_017Even Rouault
Database: update to EPSG 10.017
2021-03-29createOperation(): 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-27Merge pull request #2611 from rouault/fix_2610Even Rouault
Add mapping of ESRI Equal_Area projection method to EPSG (fixes #2610)
2021-03-20Merge pull request #2594 from rouault/fix_of_fix_2588Even Rouault
createOperations(): fix regression for the fix of #2588
2021-03-20Merge pull request #2592 from rouault/fix_2588Even Rouault
createOperations(): fix Compound to Geog3D CRS computations in the ca…
2021-03-19CRS::promoteTo3D(): propagate the extent from the 2D CRS (fixes #2587)Even Rouault
This will help getting more consistent results between the 2D and 3D cases, as identified in https://github.com/OSGeo/PROJ/issues/2587#issue-836061171
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-17Fix proj_clone() to work on 'meta' coordinate operation PJ* objects that can ↵Even Rouault
be returned by proj_create_crs_to_crs()
2021-03-10Make proj_lp_dist() and proj_geod() work on a PJ* CRS objectEven 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-05createOperations(): fix incorrect height transformation between 3D promoted ↵Even Rouault
RGF93 and CH1903+ (fixes #2541)
2021-03-03Reformat code with clang-format-10 from ubuntu 20.04Even Rouault
2021-02-22isEquivalentName(): fix for GDAL test failureEven Rouault
https://github.com/OSGeo/PROJ/pull/2536 changed the name of the ellps=intl to "International 1924 (Hayford 1909, 1910)" When writing a GeoTIFF file from GDAL using a SRS built from a PROJ string, GDAL massages the datum name to "Unknown_based_on_International_1924_Hayford_1909_1910_ellipsoid" Before this fix, this wasn't considered as equivaleent to the non-massaged datum name "Unknown based on International 1924 (Hayford 1909, 1910) ellipsoid"
2021-02-11C API: avoid error messages to be emitted in PJ_LOG_NONE log level (fixes #2526)Even Rouault
2021-02-11Merge pull request #2521 from rouault/boundcrs_proj_based_methodEven Rouault
Allow a BoundCRS to use a PROJ string transformation
2021-02-10Fix handling of +proj=ob_tran +o_proj=longlat combined with +over (fixes #2510)Even Rouault
2021-02-10Allow a BoundCRS to use a PROJ string transformationEven Rouault
Related to https://lists.osgeo.org/pipermail/proj/2021-February/010040.html Given test.wkt with ``` BOUNDCRS[ SOURCECRS[ GEOGCRS["unknown", DATUM["Unknown based on GRS80 ellipsoid", ELLIPSOID["GRS 1980",6378137,298.257222101, LENGTHUNIT["metre",1], ID["EPSG",7019]]], PRIMEM["Greenwich",0, ANGLEUNIT["degree",0.0174532925199433], ID["EPSG",8901]], CS[ellipsoidal,2], AXIS["longitude",east, ORDER[1], ANGLEUNIT["degree",0.0174532925199433, ID["EPSG",9122]]], AXIS["latitude",north, ORDER[2], ANGLEUNIT["degree",0.0174532925199433, ID["EPSG",9122]]]]], TARGETCRS[ GEOGCRS["WGS 84", DATUM["World Geodetic System 1984", ELLIPSOID["WGS 84",6378137,298.257223563, LENGTHUNIT["metre",1]]], PRIMEM["Greenwich",0, ANGLEUNIT["degree",0.0174532925199433]], CS[ellipsoidal,2], AXIS["latitude",north, ORDER[1], ANGLEUNIT["degree",0.0174532925199433]], AXIS["longitude",east, ORDER[2], ANGLEUNIT["degree",0.0174532925199433]], ID["EPSG",4326]]], ABRIDGEDTRANSFORMATION["Transformation from unknown to WGS84", METHOD["PROJ-based operation method: +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=cart +ellps=GRS80 +step +proj=helmert +convention=coordinate_frame +exact +step +inv +proj=cart +ellps=WGS84 +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg"]]] ``` ``projinfo -s @test.wkt -t "WGS 84" -o PROJ -q`` outputs: ``` +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=cart +ellps=GRS80 +step +proj=helmert +convention=coordinate_frame +exact +step +inv +proj=cart +ellps=WGS84 +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg ```
2021-02-09Database: update to EPSG v10.013Even Rouault
2021-02-09createOperations(): remove involved logic that was done for GDA94 -> WGS84 ↵Even Rouault
(G1762) It is no longer needed for that particular case, since there's now a concatenated operation for it. It could in theory be useful for other cases, but removing it doesn't break existing tests, so...
2021-02-07Merge pull request #2503 from havingsexonthebeach/epsg10_011Kristian Evers
Database: update to EPSG v10.011
2021-01-15Database: update to EPSG v10.011Modern Slave
2021-01-14createOperations(): fix bug involving geoidmodel and non-metre vertical unitEven Rouault
2021-01-13createOperations(): fix Compound to Geog3D/Projected3D CRS with non-metre ↵Even Rouault
ellipsoidal height
2021-01-05createFromUserInput(): accept leading white space (fixes #2498)Even Rouault
2020-12-28C API: add proj_crs_is_derived()Even 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-14createOperations(): fix inconsistent chaining exception when transforming ↵Even Rouault
from BoundCRS of projected CRS based on NTF Paris to BoundCRS of geog CRS NTF Paris. Fixes https://github.com/OSGeo/gdal/issues/3273
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-12-02Merge pull request #2444 from rouault/topocentricEven Rouault
Add +proj=topocentric geocentric->topocentric conversion (fixes #500)
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-29Merge pull request #2450 from rouault/setAllowEllipsoidalHeightAsVerticalCRSEven Rouault
Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDAL
2020-11-28createOperations(): get a '+proj=noop' instead of '+proj=affine +s33=-1' ↵Even Rouault
when attempting (non-sensical) EPSG:3855 to EPSG:4326
2020-11-28WKT1 import: better deal with apps.epsg.org output w.r.t datum ensemble namesEven Rouault
2020-11-28createObjectsFromName(): in exact match, make looking for 'ETRS89 / UTM zone ↵Even Rouault
32N' return only the exact match
2020-11-27PRIMEM WKT handling: fixes on import for 'sexagesimal DMS' or from ↵Even Rouault
WKT1:GDAL/ESRI when GEOGCS UNIT != Degree; morph to ESRI the PRIMEM name on export
2020-11-26Merge pull request #2403 from kbevers/remove-proj_api.hKristian Evers
Remove proj_api.h
2020-11-24Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDALEven Rouault
as CompoundCRS with a VerticalCRS being an ellipsoidal height, which is not conformant. But needed for LAS 1.4 that only supports WKT1
2020-11-24createOperation(): add a ballpark vertical transformation when dealing with ↵Even Rouault
GEOIDMODEL[]
2020-11-23Add +proj=topocentric geocentric->topocentric conversion (fixes #500)Even Rouault
2020-11-23GeographicCRS::_isEquivalentTo(EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS): make ↵Even Rouault
it work when comparing easting,northing,up and northing,easting,up
2020-11-21PROJJSON parsing: fix parsing of a Geodetic CRS with a DatumEnsemble, and ↵Even Rouault
fix parsing of a ProjectedCRS whose base is a Geocentric CRS
2020-11-21WKT parsing: fix ingestion of WKT with a Geocentric CRS as the base of the ↵Even Rouault
projected CRS
2020-11-21createOperation(): make it work properly when one of the CRS is a BoundCRS ↵Even Rouault
of a DerivedGeographicCRS (+proj=ob_tran +o_proj=lonlat +towgs84=....)
2020-11-21Make GeographicCRS/GeodeticCRS::isEquivalentTo() work properly when ↵Even Rouault
comparing to a DerivedGeographicCRS/DerivedGeodeticCRS
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_ctx_* functions and use their proj_context counterpartsKristian Evers