From a9ef3a229c6fef5ef8a05ba521a0237f2ffa6aa6 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 6 Dec 2018 16:23:07 +0100 Subject: Coordinate operation search: add a authority_to_authority_preference table to restrict and prioritize searches --- include/proj/io.hpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'include') diff --git a/include/proj/io.hpp b/include/proj/io.hpp index 26420150..f511bf5b 100644 --- a/include/proj/io.hpp +++ b/include/proj/io.hpp @@ -731,6 +731,11 @@ class PROJ_GCC_DLL DatabaseContext { PROJ_INTERNAL std::string getTextDefinition(const std::string &tableName, const std::string &authName, const std::string &code) const; + + PROJ_INTERNAL std::vector + getAllowedAuthorities(const std::string &sourceAuthName, + const std::string &targetAuthName) const; + //! @endcond protected: -- cgit v1.2.3 From f06045c2f0145ec2290913fa144cd690e70736fd Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 6 Dec 2018 21:28:16 +0100 Subject: Add API to retrieve non-deprecated equivalent of an object --- include/proj/crs.hpp | 3 +++ include/proj/io.hpp | 4 ++++ 2 files changed, 7 insertions(+) (limited to 'include') diff --git a/include/proj/crs.hpp b/include/proj/crs.hpp index bdb36cd4..10d1f07e 100644 --- a/include/proj/crs.hpp +++ b/include/proj/crs.hpp @@ -101,6 +101,9 @@ class PROJ_GCC_DLL CRS : public common::ObjectUsage { PROJ_DLL std::list> identify(const io::AuthorityFactoryPtr &authorityFactory) const; + PROJ_DLL std::list + getNonDeprecated(const io::DatabaseContextNNPtr &dbContext) const; + PROJ_PRIVATE : //! @cond Doxygen_Suppress PROJ_INTERNAL const GeodeticCRS * diff --git a/include/proj/io.hpp b/include/proj/io.hpp index f511bf5b..ee024a72 100644 --- a/include/proj/io.hpp +++ b/include/proj/io.hpp @@ -736,6 +736,10 @@ class PROJ_GCC_DLL DatabaseContext { getAllowedAuthorities(const std::string &sourceAuthName, const std::string &targetAuthName) const; + PROJ_INTERNAL std::list> + getNonDeprecated(const std::string &tableName, const std::string &authName, + const std::string &code) const; + //! @endcond protected: -- cgit v1.2.3 From 67ca5c199dfe62fc0738a808f3142af2e77eafd7 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 6 Dec 2018 22:10:57 +0100 Subject: projinfo: display deprecation info --- include/proj/common.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/proj/common.hpp b/include/proj/common.hpp index f1e683e7..91756c62 100644 --- a/include/proj/common.hpp +++ b/include/proj/common.hpp @@ -277,9 +277,9 @@ using IdentifiedObjectNNPtr = util::nn; * * \remark Implements IdentifiedObject from \ref ISO_19111_2018 */ -class IdentifiedObject : public util::BaseObject, - public util::IComparable, - public io::IWKTExportable { +class PROJ_GCC_DLL IdentifiedObject : public util::BaseObject, + public util::IComparable, + public io::IWKTExportable { public: //! @cond Doxygen_Suppress PROJ_DLL ~IdentifiedObject() override; @@ -311,14 +311,14 @@ class IdentifiedObject : public util::BaseObject, //! @cond Doxygen_Suppress void formatID(io::WKTFormatter *formatter) const; - void formatRemarks(io::WKTFormatter *formatter) const; + PROJ_INTERNAL void formatRemarks(io::WKTFormatter *formatter) const; - bool + PROJ_INTERNAL bool _isEquivalentTo(const util::IComparable *other, util::IComparable::Criterion criterion = util::IComparable::Criterion::STRICT) const override; - bool + PROJ_INTERNAL bool _isEquivalentTo(const IdentifiedObject *other, util::IComparable::Criterion criterion = util::IComparable::Criterion::STRICT) PROJ_CONST_DECL; -- cgit v1.2.3 From cae698abe380b3823c3f08151c25097031ae091f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 6 Dec 2018 22:51:27 +0100 Subject: Speed-up createBoundCRSToWGS84IfPossible() --- include/proj/crs.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/proj/crs.hpp b/include/proj/crs.hpp index 10d1f07e..1066f886 100644 --- a/include/proj/crs.hpp +++ b/include/proj/crs.hpp @@ -92,8 +92,9 @@ 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) const; + PROJ_DLL CRSNNPtr + createBoundCRSToWGS84IfPossible(const io::DatabaseContextPtr &dbContext, + bool allowIntermediateCRS) const; PROJ_DLL CRSNNPtr stripVerticalComponent() const; PROJ_DLL const BoundCRSPtr &canonicalBoundCRS() PROJ_CONST_DECL; -- cgit v1.2.3 From 263b259b276edd075b0abcd6aad0e923230c2d15 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 7 Dec 2018 02:22:20 +0100 Subject: Various speed optimizations --- include/proj/io.hpp | 3 ++- include/proj/metadata.hpp | 4 ++++ include/proj/util.hpp | 9 ++++----- 3 files changed, 10 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/proj/io.hpp b/include/proj/io.hpp index ee024a72..c0d4fef5 100644 --- a/include/proj/io.hpp +++ b/include/proj/io.hpp @@ -961,7 +961,8 @@ class PROJ_GCC_DLL AuthorityFactory { PROJ_INTERNAL operation::CoordinateOperationNNPtr createCoordinateOperation(const std::string &code, bool allowConcatenated, - bool usePROJAlternativeGridNames) const; + bool usePROJAlternativeGridNames, + const std::string &type) const; INLINED_MAKE_SHARED diff --git a/include/proj/metadata.hpp b/include/proj/metadata.hpp index fc86693d..d1b91515 100644 --- a/include/proj/metadata.hpp +++ b/include/proj/metadata.hpp @@ -406,6 +406,7 @@ class PROJ_GCC_DLL Identifier : public util::BaseObject, protected: PROJ_INTERNAL explicit Identifier(const std::string &codeIn, const util::PropertyMap &properties); + PROJ_INTERNAL explicit Identifier(); PROJ_FRIEND_OPTIONAL(Identifier); INLINED_MAKE_SHARED @@ -413,6 +414,9 @@ class PROJ_GCC_DLL Identifier : public util::BaseObject, PROJ_FRIEND(common::IdentifiedObject); + PROJ_INTERNAL static IdentifierNNPtr + createFromDescription(const std::string &descriptionIn); + private: PROJ_OPAQUE_PRIVATE_DATA }; diff --git a/include/proj/util.hpp b/include/proj/util.hpp index eb7288b2..c2f2b7fe 100644 --- a/include/proj/util.hpp +++ b/include/proj/util.hpp @@ -499,12 +499,13 @@ class PropertyMap { PROJ_PRIVATE : //! @cond Doxygen_Suppress - std::map::iterator - find(const std::string &key) const; - std::map::iterator end() const; + const BaseObjectNNPtr * + get(const std::string &key) const; // throw(InvalidValueTypeException) bool getStringValue(const std::string &key, std::string &outVal) const; + bool getStringValue(const std::string &key, + optional &outVal) const; static PropertyMap createAndSetName(const char *name); static PropertyMap createAndSetName(const std::string &name); @@ -513,8 +514,6 @@ class PropertyMap { private: PropertyMap &operator=(const PropertyMap &) = delete; - PropertyMap &set(const std::string &key, const BoxedValue &val); - PROJ_OPAQUE_PRIVATE_DATA }; -- cgit v1.2.3