aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-04-03 16:16:22 +0200
committerEven Rouault <even.rouault@spatialys.com>2021-04-03 20:18:10 +0200
commit2594b3a2240db7d7007e1c98f08762613b7f7e73 (patch)
treefe9a53e6a1969ac0435b6dc4f06aed5763b62055
parent970c849cc70ccb8a016c9834daef70d28e224ae9 (diff)
downloadPROJ-2594b3a2240db7d7007e1c98f08762613b7f7e73.tar.gz
PROJ-2594b3a2240db7d7007e1c98f08762613b7f7e73.zip
Add mapping between EPSG method 'Hyperbolic Cassini-Soldner' and +proj=cass +hyperbolic
-rw-r--r--src/iso19111/operation/parammappings.cpp4
-rw-r--r--src/proj_constants.h3
-rw-r--r--test/unit/test_operation.cpp12
3 files changed, 19 insertions, 0 deletions
diff --git a/src/iso19111/operation/parammappings.cpp b/src/iso19111/operation/parammappings.cpp
index 03200468..15ecb24f 100644
--- a/src/iso19111/operation/parammappings.cpp
+++ b/src/iso19111/operation/parammappings.cpp
@@ -642,6 +642,10 @@ static const MethodMapping projectionMethodMappings[] = {
{EPSG_NAME_METHOD_CASSINI_SOLDNER, EPSG_CODE_METHOD_CASSINI_SOLDNER,
"Cassini_Soldner", "cass", nullptr, paramsNatOrigin},
+ {EPSG_NAME_METHOD_HYPERBOLIC_CASSINI_SOLDNER,
+ EPSG_CODE_METHOD_HYPERBOLIC_CASSINI_SOLDNER, nullptr, "cass", "hyperbolic",
+ paramsNatOrigin},
+
{PROJ_WKT2_NAME_METHOD_EQUIDISTANT_CONIC, 0, "Equidistant_Conic", "eqdc",
nullptr, paramsEQDC},
diff --git a/src/proj_constants.h b/src/proj_constants.h
index 0976dc2a..baea05da 100644
--- a/src/proj_constants.h
+++ b/src/proj_constants.h
@@ -88,6 +88,9 @@
#define EPSG_NAME_METHOD_CASSINI_SOLDNER "Cassini-Soldner"
#define EPSG_CODE_METHOD_CASSINI_SOLDNER 9806
+#define EPSG_NAME_METHOD_HYPERBOLIC_CASSINI_SOLDNER "Hyperbolic Cassini-Soldner"
+#define EPSG_CODE_METHOD_HYPERBOLIC_CASSINI_SOLDNER 9833
+
#define PROJ_WKT2_NAME_METHOD_EQUIDISTANT_CONIC "Equidistant Conic"
#define PROJ_WKT2_NAME_METHOD_ECKERT_I "Eckert I"
diff --git a/test/unit/test_operation.cpp b/test/unit/test_operation.cpp
index 6ddbd9f4..2830ea94 100644
--- a/test/unit/test_operation.cpp
+++ b/test/unit/test_operation.cpp
@@ -4223,6 +4223,18 @@ TEST(operation, adams_ws2_export_failure) {
// ---------------------------------------------------------------------------
+TEST(operation, hyperbolic_cassini_soldner) {
+ auto dbContext = DatabaseContext::create();
+ auto crs =
+ AuthorityFactory::create(dbContext, "EPSG")->createProjectedCRS("3139");
+ EXPECT_EQ(crs->exportToPROJString(PROJStringFormatter::create().get()),
+ "+proj=cass +hyperbolic +lat_0=-16.25 +lon_0=179.333333333333 "
+ "+x_0=251727.9155424 +y_0=334519.953768 "
+ "+a=6378306.3696 +b=6356571.996 +units=link +no_defs +type=crs");
+}
+
+// ---------------------------------------------------------------------------
+
TEST(operation, PROJ_based) {
auto conv = SingleOperation::createPROJBased(PropertyMap(), "+proj=merc",
nullptr, nullptr);