diff options
| author | Even Rouault <even.rouault@mines-paris.org> | 2018-12-03 17:20:48 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-03 17:20:48 +0100 |
| commit | d0506e19a71888f7f0c3aa8618d919624e754c4d (patch) | |
| tree | 4468cd5ef29f3f7f6ce2ed950b5d1938cfbf84b5 /include/proj | |
| parent | 4794d755a8dea4f4501c61e896e1829bb720e69a (diff) | |
| parent | ba111ac8323ff194039a06db87d1fb17ed8175b3 (diff) | |
| download | PROJ-d0506e19a71888f7f0c3aa8618d919624e754c4d.tar.gz PROJ-d0506e19a71888f7f0c3aa8618d919624e754c4d.zip | |
Merge pull request #1182 from rouault/plug_new_code
Remove data/epsg, IGNF and esri.* files / support legacy +init=epsg:XXXX syntax
Diffstat (limited to 'include/proj')
| -rw-r--r-- | include/proj/coordinateoperation.hpp | 14 | ||||
| -rw-r--r-- | include/proj/coordinatesystem.hpp | 29 | ||||
| -rw-r--r-- | include/proj/crs.hpp | 13 | ||||
| -rw-r--r-- | include/proj/internal/internal.hpp | 2 | ||||
| -rw-r--r-- | include/proj/io.hpp | 27 |
5 files changed, 72 insertions, 13 deletions
diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index 293ba480..4dd85e96 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -818,10 +818,6 @@ class PROJ_GCC_DLL Conversion : public SingleOperation { PROJ_DLL ~Conversion() override; //! @endcond - //! @cond Doxygen_Suppress - PROJ_INTERNAL ConversionNNPtr shallowClone() const; - //! @endcond - PROJ_DLL CoordinateOperationNNPtr inverse() const override; //! @cond Doxygen_Suppress @@ -1287,6 +1283,12 @@ class PROJ_GCC_DLL Conversion : public SingleOperation { PROJ_INTERNAL const char *getESRIMethodName() const; PROJ_INTERNAL const char *getWKT1GDALMethodName() const; + + PROJ_INTERNAL ConversionNNPtr shallowClone() const; + + PROJ_INTERNAL ConversionNNPtr alterParametersLinearUnit( + const common::UnitOfMeasure &unit, bool convertToNewUnit) const; + //! @endcond protected: @@ -1490,6 +1492,8 @@ class PROJ_GCC_DLL Transformation : public SingleOperation { PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter) const override; // throw(io::FormattingException) + PROJ_INTERNAL TransformationNNPtr shallowClone() const; + //! @endcond protected: @@ -1499,6 +1503,7 @@ class PROJ_GCC_DLL Transformation : public SingleOperation { const OperationMethodNNPtr &methodIn, const std::vector<GeneralParameterValueNNPtr> &values, const std::vector<metadata::PositionalAccuracyNNPtr> &accuracies); + PROJ_INTERNAL Transformation(const Transformation &other); INLINED_MAKE_SHARED PROJ_INTERNAL void _exportToPROJString(io::PROJStringFormatter *formatter) @@ -1508,7 +1513,6 @@ class PROJ_GCC_DLL Transformation : public SingleOperation { private: PROJ_OPAQUE_PRIVATE_DATA - Transformation(const Transformation &) = delete; }; // --------------------------------------------------------------------------- diff --git a/include/proj/coordinatesystem.hpp b/include/proj/coordinatesystem.hpp index 89c2f99c..a301adab 100644 --- a/include/proj/coordinatesystem.hpp +++ b/include/proj/coordinatesystem.hpp @@ -208,6 +208,9 @@ class PROJ_GCC_DLL CoordinateSystemAxis final PROJ_INTERNAL static CoordinateSystemAxisNNPtr createLONG_EAST(const common::UnitOfMeasure &unit); + PROJ_INTERNAL CoordinateSystemAxisNNPtr + alterUnit(const common::UnitOfMeasure &newUnit) const; + //! @endcond private: @@ -372,6 +375,13 @@ class PROJ_GCC_DLL EllipsoidalCS final : public CoordinateSystem { }; PROJ_INTERNAL AxisOrder axisOrder() const; + + PROJ_INTERNAL EllipsoidalCSNNPtr + alterAngularUnit(const common::UnitOfMeasure &angularUnit) const; + + PROJ_INTERNAL EllipsoidalCSNNPtr + alterLinearUnit(const common::UnitOfMeasure &linearUnit) const; + //! @endcond protected: @@ -416,6 +426,13 @@ class PROJ_GCC_DLL VerticalCS final : public CoordinateSystem { PROJ_DLL static VerticalCSNNPtr createGravityRelatedHeight(const common::UnitOfMeasure &unit); + PROJ_PRIVATE : + //! @cond Doxygen_Suppress + PROJ_INTERNAL VerticalCSNNPtr + alterUnit(const common::UnitOfMeasure &unit) const; + + //! @endcond + protected: PROJ_INTERNAL explicit VerticalCS(const CoordinateSystemAxisNNPtr &axisIn); INLINED_MAKE_SHARED @@ -460,11 +477,23 @@ class PROJ_GCC_DLL CartesianCS final : public CoordinateSystem { const CoordinateSystemAxisNNPtr &axis1, const CoordinateSystemAxisNNPtr &axis2, const CoordinateSystemAxisNNPtr &axis3); + PROJ_DLL static CartesianCSNNPtr createEastingNorthing(const common::UnitOfMeasure &unit); + + PROJ_DLL static CartesianCSNNPtr + createNorthingEasting(const common::UnitOfMeasure &unit); + PROJ_DLL static CartesianCSNNPtr createGeocentric(const common::UnitOfMeasure &unit); + PROJ_PRIVATE : + //! @cond Doxygen_Suppress + PROJ_INTERNAL CartesianCSNNPtr + alterUnit(const common::UnitOfMeasure &unit) const; + + //! @endcond + protected: PROJ_INTERNAL explicit CartesianCS( const std::vector<CoordinateSystemAxisNNPtr> &axisIn); diff --git a/include/proj/crs.hpp b/include/proj/crs.hpp index 82b2bd49..bdb36cd4 100644 --- a/include/proj/crs.hpp +++ b/include/proj/crs.hpp @@ -108,6 +108,16 @@ class PROJ_GCC_DLL CRS : public common::ObjectUsage { PROJ_FOR_TEST CRSNNPtr shallowClone() const; + PROJ_FOR_TEST CRSNNPtr alterName(const std::string &newName) const; + + PROJ_INTERNAL const std::string &getExtensionProj4() const noexcept; + + PROJ_FOR_TEST CRSNNPtr + alterGeodeticCRS(const GeodeticCRSNNPtr &newGeodCRS) const; + + PROJ_FOR_TEST CRSNNPtr + alterCSLinearUnit(const common::UnitOfMeasure &unit) const; + //! @endcond protected: @@ -555,6 +565,9 @@ class PROJ_GCC_DLL ProjectedCRS final : public DerivedCRS, PROJ_INTERNAL void _exportToWKT(io::WKTFormatter *formatter) const override; // throw(io::FormattingException) + PROJ_FOR_TEST ProjectedCRSNNPtr alterParametersLinearUnit( + const common::UnitOfMeasure &unit, bool convertToNewUnit) const; + //! @endcond protected: diff --git a/include/proj/internal/internal.hpp b/include/proj/internal/internal.hpp index 85dd5ac3..b16e12bc 100644 --- a/include/proj/internal/internal.hpp +++ b/include/proj/internal/internal.hpp @@ -104,7 +104,7 @@ PROJ_FOR_TEST std::string replaceAll(const std::string &str, const std::string &before, const std::string &after); -size_t ci_find(const std::string &osStr, const char *needle) noexcept; +PROJ_DLL size_t ci_find(const std::string &osStr, const char *needle) noexcept; size_t ci_find(const std::string &osStr, const std::string &needle, size_t startPos = 0) noexcept; diff --git a/include/proj/io.hpp b/include/proj/io.hpp index c649fa9f..ba7e9f53 100644 --- a/include/proj/io.hpp +++ b/include/proj/io.hpp @@ -134,6 +134,14 @@ using DatabaseContextNNPtr = util::nn<DatabaseContextPtr>; // --------------------------------------------------------------------------- +class WKTNode; +/** Unique pointer of WKTNode. */ +using WKTNodePtr = std::unique_ptr<WKTNode>; +/** Non-null unique pointer of WKTNode. */ +using WKTNodeNNPtr = util::nn<WKTNodePtr>; + +// --------------------------------------------------------------------------- + class WKTFormatter; /** WKTFormatter unique pointer. */ using WKTFormatterPtr = std::unique_ptr<WKTFormatter>; @@ -308,6 +316,8 @@ class PROJ_GCC_DLL WKTFormatter { PROJ_INTERNAL const DatabaseContextPtr &databaseContext() const; + PROJ_INTERNAL void ingestWKTNode(const WKTNodeNNPtr &node); + //! @endcond protected: @@ -365,6 +375,7 @@ class PROJ_GCC_DLL PROJStringFormatter { PROJ_DLL void stopInversion(); PROJ_INTERNAL bool isInverted() const; PROJ_INTERNAL bool getUseETMercForTMerc(bool &settingSetOut) const; + PROJ_INTERNAL void setCoordinateOperationOptimizations(bool enable); PROJ_DLL void ingestPROJString(const std::string &str); // throw ParsingException @@ -554,12 +565,6 @@ class PROJ_GCC_DLL IPROJStringExportable { // --------------------------------------------------------------------------- -class WKTNode; -/** Unique pointer of WKTNode. */ -using WKTNodePtr = std::unique_ptr<WKTNode>; -/** Non-null unique pointer of WKTNode. */ -using WKTNodeNNPtr = util::nn<WKTNodePtr>; - /** \brief Node in the tree-splitted WKT representation. */ class PROJ_GCC_DLL WKTNode { @@ -597,7 +602,8 @@ class PROJ_GCC_DLL WKTNode { PROJ_DLL util::BaseObjectNNPtr createFromUserInput(const std::string &text, - const DatabaseContextPtr &dbContext); + const DatabaseContextPtr &dbContext, + bool usePROJ4InitRules = false); // --------------------------------------------------------------------------- @@ -654,6 +660,8 @@ class PROJ_GCC_DLL PROJStringParser { PROJ_DLL PROJStringParser & attachDatabaseContext(const DatabaseContextPtr &dbContext); + PROJ_DLL PROJStringParser &setUsePROJ4InitRules(bool enable); + PROJ_DLL std::vector<std::string> warningList() const; PROJ_DLL util::BaseObjectNNPtr createFromPROJString( @@ -686,6 +694,8 @@ class PROJ_GCC_DLL DatabaseContext { PROJ_DLL const std::string &getPath() const; + PROJ_DLL const char *getMetadata(const char *key) const; + PROJ_DLL std::set<std::string> getAuthorities() const; PROJ_DLL std::vector<std::string> getDatabaseStructure() const; @@ -718,6 +728,9 @@ class PROJ_GCC_DLL DatabaseContext { PROJ_INTERNAL bool isKnownName(const std::string &name, const std::string &tableName) const; + PROJ_INTERNAL std::string getTextDefinition(const std::string &tableName, + const std::string &authName, + const std::string &code) const; //! @endcond protected: |
