aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_c_api.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2018-11-30 18:37:12 +0100
committerEven Rouault <even.rouault@spatialys.com>2018-12-01 17:36:29 +0100
commit9d19d5578705e06990fb716adcb9e6a1529424aa (patch)
treee2bba1f4f1f07d61ea1b18638bd07e02c9b3b996 /test/unit/test_c_api.cpp
parentb6a5c445e202e61c64b0986679a6e0a83724c322 (diff)
downloadPROJ-9d19d5578705e06990fb716adcb9e6a1529424aa.tar.gz
PROJ-9d19d5578705e06990fb716adcb9e6a1529424aa.zip
importFromWKT: morph GDAL_WKT1 datum names into their EPSG spelling
Diffstat (limited to 'test/unit/test_c_api.cpp')
-rw-r--r--test/unit/test_c_api.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index 59ba12ca..855ebf36 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -292,6 +292,25 @@ TEST_F(CApi, proj_obj_as_wkt) {
// ---------------------------------------------------------------------------
+TEST_F(CApi, proj_obj_as_wkt_check_db_use) {
+ auto obj = proj_obj_create_from_wkt(
+ m_ctxt, "GEOGCS[\"AGD66\",DATUM[\"Australian_Geodetic_Datum_1966\","
+ "SPHEROID[\"Australian National Spheroid\",6378160,298.25]],"
+ "PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433]]",
+ nullptr);
+ ObjectKeeper keeper(obj);
+ ASSERT_NE(obj, nullptr);
+
+ auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT1_ESRI, nullptr);
+ EXPECT_EQ(std::string(wkt),
+ "GEOGCS[\"GCS_Australian_1966\",DATUM[\"D_Australian_1966\","
+ "SPHEROID[\"Australian\",6378160.0,298.25]],"
+ "PRIMEM[\"Greenwich\",0.0],"
+ "UNIT[\"Degree\",0.0174532925199433]]");
+}
+
+// ---------------------------------------------------------------------------
+
TEST_F(CApi, proj_obj_as_wkt_incompatible_WKT1) {
auto obj = proj_obj_create_from_wkt(
m_ctxt,
@@ -1547,6 +1566,44 @@ TEST_F(CApi, proj_obj_create_geographic_crs) {
ObjectKeeper keeper(obj);
ASSERT_NE(obj, nullptr);
}
+
+ // Datum with GDAL_WKT1 spelling: special case of WGS_1984
+ {
+ auto obj = proj_obj_create_geographic_crs(
+ m_ctxt, "WGS 84", "WGS_1984", "WGS 84", 6378137, 298.257223563,
+ "Greenwich", 0.0, "Degree", 0.0174532925199433, cs);
+ ObjectKeeper keeper(obj);
+ ASSERT_NE(obj, nullptr);
+
+ auto objRef = proj_obj_create_from_user_input(
+ m_ctxt,
+ GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get())
+ .c_str(),
+ nullptr);
+ ObjectKeeper keeperobjRef(objRef);
+ EXPECT_NE(objRef, nullptr);
+
+ EXPECT_TRUE(proj_obj_is_equivalent_to(obj, objRef, PJ_COMP_EQUIVALENT));
+ }
+
+ // Datum with GDAL_WKT1 spelling: database query
+ {
+ auto obj = proj_obj_create_geographic_crs(
+ m_ctxt, "NAD83", "North_American_Datum_1983", "GRS 1980", 6378137,
+ 298.257222101, "Greenwich", 0.0, "Degree", 0.0174532925199433, cs);
+ ObjectKeeper keeper(obj);
+ ASSERT_NE(obj, nullptr);
+
+ auto objRef = proj_obj_create_from_user_input(
+ m_ctxt,
+ GeographicCRS::EPSG_4269->exportToWKT(WKTFormatter::create().get())
+ .c_str(),
+ nullptr);
+ ObjectKeeper keeperobjRef(objRef);
+ EXPECT_NE(objRef, nullptr);
+
+ EXPECT_TRUE(proj_obj_is_equivalent_to(obj, objRef, PJ_COMP_EQUIVALENT));
+ }
}
// ---------------------------------------------------------------------------