From 70bc293a43def169fa34ed8e97a5cb06b336f247 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 20 Feb 2019 12:18:16 +0100 Subject: Vertical CRS transformation: synthetize a vertical unit change transformation when needed, and also sort Null geographic offset transformation in last --- include/proj/coordinateoperation.hpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'include') diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index 92b655f9..2f7c9bbf 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -1493,6 +1493,11 @@ class PROJ_GCC_DLL Transformation : public SingleOperation { PROJ_DLL TransformationNNPtr substitutePROJAlternativeGridNames( io::DatabaseContextNNPtr databaseContext) const; + PROJ_DLL static TransformationNNPtr createChangeVerticalUnit( + const util::PropertyMap &properties, const crs::CRSNNPtr &sourceCRSIn, + const crs::CRSNNPtr &targetCRSIn, const common::Scale &factor, + const std::vector &accuracies); + PROJ_PRIVATE : //! @cond Doxygen_Suppress PROJ_INTERNAL const std::string & -- cgit v1.2.3 From 94578ea8ff38f4bc6b1f6f52b80ecf7359f5dfc2 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 20 Feb 2019 18:04:35 +0100 Subject: CoordinateOperation: add a hasBallparkTransformation() method that can be used to know if it includes a very approximative transformation term --- include/proj/coordinateoperation.hpp | 3 +++ include/proj/internal/coordinateoperation_internal.hpp | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index 2f7c9bbf..a0883cae 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -148,6 +148,8 @@ class PROJ_GCC_DLL CoordinateOperation : public common::ObjectUsage, PROJ_DLL bool isPROJInstanciable(const io::DatabaseContextPtr &databaseContext) const; + PROJ_DLL bool hasBallparkTransformation() const; + protected: PROJ_INTERNAL CoordinateOperation(); PROJ_INTERNAL CoordinateOperation(const CoordinateOperation &other); @@ -167,6 +169,7 @@ class PROJ_GCC_DLL CoordinateOperation : public common::ObjectUsage, PROJ_INTERNAL void setAccuracies( const std::vector &accuracies); + PROJ_INTERNAL void setHasBallparkTransformation(bool b); private: PROJ_OPAQUE_PRIVATE_DATA diff --git a/include/proj/internal/coordinateoperation_internal.hpp b/include/proj/internal/coordinateoperation_internal.hpp index 8428b8bf..65b786b2 100644 --- a/include/proj/internal/coordinateoperation_internal.hpp +++ b/include/proj/internal/coordinateoperation_internal.hpp @@ -246,7 +246,8 @@ class PROJBasedOperation : public SingleOperation { create(const util::PropertyMap &properties, const io::IPROJStringExportableNNPtr &projExportable, bool inverse, const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS, - const std::vector &accuracies); + const std::vector &accuracies, + bool hasRoughTransformation); std::set gridsNeeded(const io::DatabaseContextPtr &databaseContext) const override; -- cgit v1.2.3 From 69ef7449f5f26453a8b6cab1ba02cb870055615f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 20 Feb 2019 20:42:26 +0100 Subject: typo fixes: s/Explictly/Explicitly/ and s/instanciat/instantiat/ --- include/proj/coordinateoperation.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index a0883cae..fd737dcc 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -146,7 +146,7 @@ class PROJ_GCC_DLL CoordinateOperation : public common::ObjectUsage, gridsNeeded(const io::DatabaseContextPtr &databaseContext) const = 0; PROJ_DLL bool - isPROJInstanciable(const io::DatabaseContextPtr &databaseContext) const; + isPROJInstantiable(const io::DatabaseContextPtr &databaseContext) const; PROJ_DLL bool hasBallparkTransformation() const; -- cgit v1.2.3