From ffc865a41aa540673eaedb2552565cf9f8d18679 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 29 Oct 2019 22:20:24 +0100 Subject: Vertical transformations: improve situations similar to transforming from 'NAVD88 (ftUS)' to X, where we now consider the available transformations from 'NAVD88' to X that might exist in the database --- include/proj/io.hpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/proj/io.hpp b/include/proj/io.hpp index 12b3b111..37b94c1e 100644 --- a/include/proj/io.hpp +++ b/include/proj/io.hpp @@ -1089,6 +1089,10 @@ class PROJ_GCC_DLL AuthorityFactory { const std::string &datum_code, const std::string &geodetic_crs_type) const; + PROJ_INTERNAL std::list + createVerticalCRSFromDatum(const std::string &datum_auth_name, + const std::string &datum_code) const; + PROJ_INTERNAL std::list createGeodeticCRSFromEllipsoid(const std::string &ellipsoid_auth_name, const std::string &ellipsoid_code, -- cgit v1.2.3 From 05a7bcfa56a03437b2ba73616a6bc21c9347d2a7 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 30 Oct 2019 11:28:43 +0100 Subject: Rework importing of Vertical unit change from EPSG db, add support for Height Depth Reversal and use it in createOperations() --- include/proj/coordinateoperation.hpp | 3 +++ include/proj/internal/coordinateoperation_constants.hpp | 4 ++++ 2 files changed, 7 insertions(+) (limited to 'include') diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index 6c4c25c2..1ced5333 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -1323,6 +1323,9 @@ class PROJ_GCC_DLL Conversion : public SingleOperation { createChangeVerticalUnit(const util::PropertyMap &properties, const common::Scale &factor); + PROJ_DLL static ConversionNNPtr + createHeightDepthReversal(const util::PropertyMap &properties); + PROJ_DLL static ConversionNNPtr createAxisOrderReversal(bool is3D); PROJ_DLL static ConversionNNPtr diff --git a/include/proj/internal/coordinateoperation_constants.hpp b/include/proj/internal/coordinateoperation_constants.hpp index f1925c9b..eb0bb8c5 100644 --- a/include/proj/internal/coordinateoperation_constants.hpp +++ b/include/proj/internal/coordinateoperation_constants.hpp @@ -826,6 +826,7 @@ static const struct MethodNameCode { METHOD_NAME_CODE(VERTICAL_PERSPECTIVE), // Other conversions METHOD_NAME_CODE(CHANGE_VERTICAL_UNIT), + METHOD_NAME_CODE(HEIGHT_DEPTH_REVERSAL), METHOD_NAME_CODE(AXIS_ORDER_REVERSAL_2D), METHOD_NAME_CODE(AXIS_ORDER_REVERSAL_3D), METHOD_NAME_CODE(GEOGRAPHIC_GEOCENTRIC), @@ -1153,6 +1154,9 @@ static const MethodMapping otherMethodMappings[] = { {EPSG_NAME_METHOD_CHANGE_VERTICAL_UNIT, EPSG_CODE_METHOD_CHANGE_VERTICAL_UNIT, nullptr, nullptr, nullptr, paramsChangeVerticalUnit}, + {EPSG_NAME_METHOD_HEIGHT_DEPTH_REVERSAL, + EPSG_CODE_METHOD_HEIGHT_DEPTH_REVERSAL, nullptr, nullptr, nullptr, + paramsChangeVerticalUnit}, {EPSG_NAME_METHOD_AXIS_ORDER_REVERSAL_2D, EPSG_CODE_METHOD_AXIS_ORDER_REVERSAL_2D, nullptr, nullptr, nullptr, nullptr}, -- cgit v1.2.3