diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2019-02-17 19:40:38 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2019-02-17 19:42:35 +0100 |
| commit | e8b2e2a36324006146406fb1fc89ce6ed863807f (patch) | |
| tree | 5c2c0c9229958d63e77171f64f909864855afb5d /include | |
| parent | a8cbe0c66974871f5a7bd7ef94001ebf461ac7ea (diff) | |
| download | PROJ-e8b2e2a36324006146406fb1fc89ce6ed863807f.tar.gz PROJ-e8b2e2a36324006146406fb1fc89ce6ed863807f.zip | |
Modify the default strategy of researching intermediate CRS to do it only if there is no direct transformation
Diffstat (limited to 'include')
| -rw-r--r-- | include/proj/coordinateoperation.hpp | 17 | ||||
| -rw-r--r-- | include/proj/crs.hpp | 7 |
2 files changed, 19 insertions, 5 deletions
diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index 6b32e24d..92b655f9 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -1726,9 +1726,22 @@ class PROJ_GCC_DLL CoordinateOperationContext { PROJ_DLL GridAvailabilityUse getGridAvailabilityUse() const; - PROJ_DLL void setAllowUseIntermediateCRS(bool use); + /** Describe if and how intermediate CRS should be used */ + enum class IntermediateCRSUse { + /** Always search for intermediate CRS. */ + ALWAYS, - PROJ_DLL bool getAllowUseIntermediateCRS() const; + /** Only attempt looking for intermediate CRS if there is no direct + * transformation available. */ + IF_NO_DIRECT_TRANSFORMATION, + + /* Do not attempt looking for intermediate CRS. */ + NEVER, + }; + + PROJ_DLL void setAllowUseIntermediateCRS(IntermediateCRSUse use); + + PROJ_DLL IntermediateCRSUse getAllowUseIntermediateCRS() const; PROJ_DLL void setIntermediateCRS(const std::vector<std::pair<std::string, std::string>> diff --git a/include/proj/crs.hpp b/include/proj/crs.hpp index 6a09ea78..fb34d3b7 100644 --- a/include/proj/crs.hpp +++ b/include/proj/crs.hpp @@ -92,9 +92,10 @@ class PROJ_GCC_DLL CRS : public common::ObjectUsage { PROJ_DLL GeodeticCRSPtr extractGeodeticCRS() const; PROJ_DLL GeographicCRSPtr extractGeographicCRS() const; PROJ_DLL VerticalCRSPtr extractVerticalCRS() const; - PROJ_DLL CRSNNPtr - createBoundCRSToWGS84IfPossible(const io::DatabaseContextPtr &dbContext, - bool allowIntermediateCRS) const; + PROJ_DLL CRSNNPtr createBoundCRSToWGS84IfPossible( + const io::DatabaseContextPtr &dbContext, + operation::CoordinateOperationContext::IntermediateCRSUse + allowIntermediateCRSUse) const; PROJ_DLL CRSNNPtr stripVerticalComponent() const; PROJ_DLL const BoundCRSPtr &canonicalBoundCRS() PROJ_PURE_DECL; |
