aboutsummaryrefslogtreecommitdiff
path: root/include/proj
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@mines-paris.org>2018-12-03 17:20:48 +0100
committerGitHub <noreply@github.com>2018-12-03 17:20:48 +0100
commitd0506e19a71888f7f0c3aa8618d919624e754c4d (patch)
tree4468cd5ef29f3f7f6ce2ed950b5d1938cfbf84b5 /include/proj
parent4794d755a8dea4f4501c61e896e1829bb720e69a (diff)
parentba111ac8323ff194039a06db87d1fb17ed8175b3 (diff)
downloadPROJ-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.hpp14
-rw-r--r--include/proj/coordinatesystem.hpp29
-rw-r--r--include/proj/crs.hpp13
-rw-r--r--include/proj/internal/internal.hpp2
-rw-r--r--include/proj/io.hpp27
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: