| Age | Commit message (Collapse) | Author |
|
|
|
Database: update to EPSG 10.017
|
|
[Backport 8.0] createOperation(): make sure no to discard deprecated operations...
|
|
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.
|
|
Fix build on Solaris 11.4
|
|
Add mapping of ESRI Equal_Area projection method to EPSG (fixes #2610)
|
|
createOperations(): fix regression for the fix of #2588
|
|
createOperations(): fix Compound to Geog3D CRS computations in the ca…
|
|
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
|
|
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.
|
|
be returned by proj_create_crs_to_crs()
|
|
macros
Makes it easier for users to test if they build against a PROJ version
later than a given x.y.z version.
|
|
|
|
|
|
|
|
```
/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;
| ^~~~~
```
|
|
RGF93 and CH1903+ (fixes #2541)
|
|
|
|
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"
|
|
|
|
Enable linking against static cURL on Windows
|
|
|
|
|
|
This is preliminary fix to allow linking the library
as well as its dependants (e.g. PROJ apps) against cURL
built as static library on Windows with support of native
Windows TLS/SSL.
On Windows, such static cURL (and its dependants) requires linking
against Winsock, CryptoAPI and other networking libaries.
|
|
|
|
The "International 1909 (Hayford)" designation is an unfortunate mix of different aspects of the same ellipsoid.
The Hayford ellipsoid was based on investigations in 1909, published in 1910 as J.F. Hayford: *Supplementary Investigation in 1909 of the Figure of the Earth and Isostasy*, Coast and Geodetic Survey, 80pp. (freely accessible through Google Books).
In 1924 Hayford's ellipsoid was adopted by the IUGG as "the International Ellipsoid".
Hence either of
- Hayford, 1909 (for the year the work was done),
- Hayford, 1910 (for the year of publication), or
- International, 1924
are reasonable names, in common use, but the "International, 1909" really is a peculiar mix of concepts.
Resolves #2534
|
|
Closes #2515
|
|
|
|
Allow a BoundCRS to use a PROJ string transformation
|
|
|
|
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
```
|
|
|
|
(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...
|
|
CMake: remove old configuration option aliases
|
|
Add build time option to make PROJ_LIB env var tested last (fixes #2399)
|
|
Database: update to EPSG v10.011
|
|
|
|
|
|
|
|
ellipsoidal height
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
that it is automatically added
|