aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-10-10 15:35:29 +0200
committerEven Rouault <even.rouault@spatialys.com>2020-11-01 12:57:35 +0100
commit119888b041258267768d632b89395e7074323326 (patch)
treef10ece9a9190d9c12405159b961c483e7f411641
parent1e5acb00a0c0fc2533b9bce2e5803da10ed1d8d6 (diff)
downloadPROJ-119888b041258267768d632b89395e7074323326.tar.gz
PROJ-119888b041258267768d632b89395e7074323326.zip
proj.h: add PJ_CATEGORY_DATUM_ENSEMBLE for proj_create_from_database()
-rw-r--r--src/iso19111/c_api.cpp3
-rw-r--r--src/proj.h3
-rw-r--r--test/unit/test_c_api.cpp7
3 files changed, 12 insertions, 1 deletions
diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp
index 4fb73d31..cbbdcaa8 100644
--- a/src/iso19111/c_api.cpp
+++ b/src/iso19111/c_api.cpp
@@ -675,6 +675,9 @@ PJ *proj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name,
codeStr, usePROJAlternativeGridNames != 0)
.as_nullable();
break;
+ case PJ_CATEGORY_DATUM_ENSEMBLE:
+ obj = factory->createDatumEnsemble(codeStr).as_nullable();
+ break;
}
return pj_obj_create(ctx, NN_NO_CHECK(obj));
} catch (const std::exception &e) {
diff --git a/src/proj.h b/src/proj.h
index e77a5984..4185ddbf 100644
--- a/src/proj.h
+++ b/src/proj.h
@@ -694,7 +694,8 @@ typedef enum
PJ_CATEGORY_PRIME_MERIDIAN,
PJ_CATEGORY_DATUM,
PJ_CATEGORY_CRS,
- PJ_CATEGORY_COORDINATE_OPERATION
+ PJ_CATEGORY_COORDINATE_OPERATION,
+ PJ_CATEGORY_DATUM_ENSEMBLE
} PJ_CATEGORY;
/** \brief Object type. */
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index a72aa72e..a7c1eb53 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -845,6 +845,13 @@ TEST_F(CApi, proj_create_from_database) {
EXPECT_EQ(proj_get_type(datum), PJ_TYPE_GEODETIC_REFERENCE_FRAME);
}
{
+ auto ensemble = proj_create_from_database(
+ m_ctxt, "EPSG", "6326", PJ_CATEGORY_DATUM_ENSEMBLE, false, nullptr);
+ ASSERT_NE(ensemble, nullptr);
+ ObjectKeeper keeper(ensemble);
+ EXPECT_EQ(proj_get_type(ensemble), PJ_TYPE_DATUM_ENSEMBLE);
+ }
+ {
// International Terrestrial Reference Frame 2008
auto datum = proj_create_from_database(
m_ctxt, "EPSG", "1061", PJ_CATEGORY_DATUM, false, nullptr);