diff options
| author | Kristian Evers <kristianevers@gmail.com> | 2019-02-11 23:58:16 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-11 23:58:16 +0100 |
| commit | 5141b3908e59a26c9fe66de94bb7388bff741b58 (patch) | |
| tree | 9cf9a136c9dd72e2732ed38470b6c84b558f4b73 /test/unit/test_c_api.cpp | |
| parent | 593fcc4b57d0f5c3a46134add142ee8d9316aec6 (diff) | |
| download | PROJ-5141b3908e59a26c9fe66de94bb7388bff741b58.tar.gz PROJ-5141b3908e59a26c9fe66de94bb7388bff741b58.zip | |
Make tmerc an alias for etmerc. (#1234)
* Make tmerc an alias for etmerc
This switches the algorithm used in tmerc to the Poder/Engsager
tmerc algorithm. The original tmerc algorithm of Evenden/Snyder
origin can still be accessed by adding the +approx flag when
initializing a tmerc projection. The +approx flag can also
be used when initializing UTM projections, in which case the
Evenden/Snyder algorithm is used as well.
If a tmerc projection is instantiated on a spherical earth
the Evenden/Snyder algorithm is used as well since the
Poder/Engsager algorithm is only defined on the ellipsoid.
+proj=etmerc can still be instantiated for backwards compatibility
reasons.
Co-authored-by: Kristian Evers <kristianevers@gmail.com>
Co-authored-by: Even Rouault <even.rouault@spatialys.com>
Diffstat (limited to 'test/unit/test_c_api.cpp')
| -rw-r--r-- | test/unit/test_c_api.cpp | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index 8ef426ac..d535e412 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -507,36 +507,21 @@ TEST_F(CApi, proj_as_proj_string_incompatible_WKT1) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_as_proj_string_etmerc_option_yes) { +TEST_F(CApi, proj_as_proj_string_approx_tmerc_option_yes) { auto obj = proj_create(m_ctxt, "+proj=tmerc +type=crs"); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - const char *options[] = {"USE_ETMERC=YES", nullptr}; + const char *options[] = {"USE_APPROX_TMERC=YES", nullptr}; auto str = proj_as_proj_string(m_ctxt, obj, PJ_PROJ_4, options); ASSERT_NE(str, nullptr); EXPECT_EQ(str, - std::string("+proj=etmerc +lat_0=0 +lon_0=0 +k=1 +x_0=0 " + std::string("+proj=tmerc +approx +lat_0=0 +lon_0=0 +k=1 +x_0=0 " "+y_0=0 +datum=WGS84 +units=m +no_defs +type=crs")); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_as_proj_string_etmerc_option_no) { - auto obj = proj_create(m_ctxt, "+proj=utm +zone=31 +type=crs"); - ObjectKeeper keeper(obj); - ASSERT_NE(obj, nullptr); - - const char *options[] = {"USE_ETMERC=NO", nullptr}; - auto str = proj_as_proj_string(m_ctxt, obj, PJ_PROJ_4, options); - ASSERT_NE(str, nullptr); - EXPECT_EQ(str, std::string("+proj=tmerc +lat_0=0 +lon_0=3 +k=0.9996 " - "+x_0=500000 +y_0=0 +datum=WGS84 +units=m " - "+no_defs +type=crs")); -} - -// --------------------------------------------------------------------------- - TEST_F(CApi, proj_crs_create_bound_crs_to_WGS84) { auto crs = proj_create_from_database(m_ctxt, "EPSG", "3844", PJ_CATEGORY_CRS, false, nullptr); |
