aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_io.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2018-11-22 21:56:33 +0100
committerEven Rouault <even.rouault@spatialys.com>2018-11-22 22:02:19 +0100
commit549268ff39d4ef614bc8a32d7bd735e87802d78b (patch)
treef71ea9e98581da6443c2b343eb0d7523fc36a79c /test/unit/test_io.cpp
parentb9d50247190e7b9ecd849ab260eb45edca3236cb (diff)
downloadPROJ-549268ff39d4ef614bc8a32d7bd735e87802d78b.tar.gz
PROJ-549268ff39d4ef614bc8a32d7bd735e87802d78b.zip
Make proj_create_crs_to_crs() use proj_obj_create_operations() and use area of use argument, and make createFromUserInput() recognize init=epsg: / init=IGNF: in legacy mode, that is when proj_context_get_use_proj4_init_rules() is used
Diffstat (limited to 'test/unit/test_io.cpp')
-rw-r--r--test/unit/test_io.cpp35
1 files changed, 33 insertions, 2 deletions
diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp
index 6ccd5578..99f58739 100644
--- a/test/unit/test_io.cpp
+++ b/test/unit/test_io.cpp
@@ -7448,12 +7448,43 @@ TEST(io, projparse_projected_title) {
TEST(io, projparse_init) {
+ // Not allowed in non-compatibillity mode
+ EXPECT_THROW(PROJStringParser().createFromPROJString("init=epsg:4326"),
+ ParsingException);
+
+ {
+ // EPSG:4326 is normally latitude-longitude order with degree,
+ // but in compatibillity mode it will be long-lat radian
+ auto dbContext = DatabaseContext::create();
+ auto obj = createFromUserInput("init=epsg:4326", dbContext, true);
+ auto crs = nn_dynamic_pointer_cast<GeographicCRS>(obj);
+ ASSERT_TRUE(crs != nullptr);
+ EXPECT_TRUE(crs->coordinateSystem()->isEquivalentTo(
+ EllipsoidalCS::createLongitudeLatitude(UnitOfMeasure::RADIAN)
+ .get()));
+ }
+
+ {
+ // EPSG:3040 is normally northing-easting order, but in compatibillity
+ // mode it will be easting-northing
+ auto dbContext = DatabaseContext::create();
+ auto obj = createFromUserInput("init=epsg:3040", dbContext, true);
+ auto crs = nn_dynamic_pointer_cast<ProjectedCRS>(obj);
+ ASSERT_TRUE(crs != nullptr);
+ EXPECT_TRUE(crs->coordinateSystem()->isEquivalentTo(
+ CartesianCS::createEastingNorthing(UnitOfMeasure::METRE).get()));
+ }
+
{
- auto obj = PROJStringParser().createFromPROJString("init=epsg:4326");
+ auto obj =
+ PROJStringParser().createFromPROJString("init=ITRF2000:ITRF2005");
auto co = nn_dynamic_pointer_cast<CoordinateOperation>(obj);
ASSERT_TRUE(co != nullptr);
EXPECT_EQ(co->exportToPROJString(PROJStringFormatter::create().get()),
- "+init=epsg:4326");
+ "+proj=helmert +x=-0.0001 +y=0.0008 +z=0.0058 +rx=0 +ry=0 "
+ "+rz=0 +s=-0.0004 +dx=0.0002 +dy=-0.0001 +dz=0.0018 +drx=0 "
+ "+dry=0 +drz=0 +ds=-8e-06 +t_epoch=2000 "
+ "+convention=position_vector");
}
{