10 Commits

Author SHA1 Message Date
Nyall Dawson
b6f60f6120 Add QgsCoordinateReferenceSystem::operation() for retrieving details
of the associated proj operation for a CRS

Allows callers to determine the projection used for CRS objects and
their details.

Also add QgsCoordinateReferenceSystemRegistry::projOperations() for
retrieving a complete list of all available PROJ operations
2021-05-11 14:25:53 +10:00
Nyall Dawson
7604b6e47e Add QgsCoordinateReferenceSystemRegistry::celestialBodies() for
retrieving a list of all known celestial bodies from PROJ

Requires PROJ 8.1+
2021-05-10 21:58:03 +10:00
Nyall Dawson
7e1f9d771d Add celestial body name to EllipsoidDefinition
Requires proj 8.1+
2021-05-10 21:58:03 +10:00
Nyall Dawson
95ed5ecc9c Add QgsCoordinateReferenceSystem::celestialBodyName
Returns the associated celestial body name (proj 8.1+ only)
2021-05-10 21:58:03 +10:00
Nyall Dawson
27085cf5f4 Use @ instead of () for epoch strings 2021-05-10 20:23:07 +10:00
Nyall Dawson
299c81db5f Show coordinate epoch in QgsCoordinateReferenceSystem __repr__ 2021-05-10 20:23:07 +10:00
Nyall Dawson
2aab133c0c Add QgsCoordinateReferenceSystem::setCoordinateEpoch()/coordinateEpoch() 2021-05-10 20:23:07 +10:00
Nyall Dawson
9e7e0d4bf6 Add QgsCoordinateReferenceSystem::isDynamic()
Returns TRUE if the given proj coordinate system is a dynamic CRS.

A dynamic CRS relies on a dynamic datum, that is a datum that is no
plate-fixed.
2021-05-10 20:23:07 +10:00
Nyall Dawson
bfb1dd7672 [api] Add QgsCoordinateReferenceSystem::factor()
Calculate various cartographic properties, such as scale factors,
angular distortion and meridian convergence for the CRS at a
given geodetic point (in geographic coordinates).

Depending on the underlying projection values will be calculated
either numerically (default) or analytically. The function also
calculates the partial derivatives of the given coordinate.

Internally uses the proj library proj_factors API to calculate the factors.

Fixes #41952
2021-05-08 07:49:27 +10:00
Nyall Dawson
31d1df320a Move projection/transformation related files to core/proj
Minor cleanup
2021-05-08 07:49:27 +10:00