Exemple #1
0
        /// <summary>
        /// The code that actually tests an input projection
        /// </summary>
        public static void TestProjection(ProjectionInfo pStart)
        {
            var    pEnd = KnownCoordinateSystems.Geographic.World.WGS1984;
            var    xy   = new double[2];
            double x    = 0;

            if (pStart.FalseEasting != null)
            {
                x     = pStart.FalseEasting.Value;
                xy[0] = pStart.FalseEasting.Value;
            }
            var z = new double[1];

            Reproject.ReprojectPoints(xy, z, pStart, pEnd, 0, 1);

            double y      = 0;
            var    source = pStart.ToProj4String();
            var    prj    = new Proj4();

            prj.ProjectPoint(ref x, ref y, source, pEnd.ToProj4String());
            if (Math.Abs(x - xy[0]) > 0.00000001)
            {
                Assert.Fail("The longitude was off by {0} decimal degrees from proj4", (x - xy[0]));
            }
            if (Math.Abs(y - xy[1]) > 0.00000001)
            {
                Assert.Fail("The latitude was off by {0} decimal degrees from proj4", (y - xy[1]));
            }
            z[0] = 0;
            Reproject.ReprojectPoints(xy, z, pEnd, pStart, 0, 1);
            prj.ProjectPoint(ref x, ref y, pEnd.ToProj4String(), source);
            if (Math.Abs(x - xy[0]) > 1 / pStart.Unit.Meters)
            {
                Assert.Fail("The X coordinate was off by {0} {1}", (x - xy[0]), pStart.GetUnitText(xy[0]));
            }
            if (Math.Abs(y - xy[1]) > 1 / pStart.Unit.Meters)
            {
                Assert.Fail("The Y coordinate was off by {0} {1}", (y - xy[1]), pStart.GetUnitText(xy[1]));
            }
        }
Exemple #2
0
        /// <summary>
        /// The code that actually tests an input projection
        /// </summary>
        public static void TestProjection(ProjectionInfo pStart)
        {
            var pEnd = KnownCoordinateSystems.Geographic.World.WGS1984;
            var xy = new double[2];
            double x = 0;
            if (pStart.FalseEasting != null)
            {
                x = pStart.FalseEasting.Value;
                xy[0] = pStart.FalseEasting.Value;
            }
            var z = new double[1];
            Reproject.ReprojectPoints(xy, z, pStart, pEnd, 0, 1);

            double y = 0;
            var source = pStart.ToProj4String();
            var prj = new Proj4();
            prj.ProjectPoint(ref x, ref y, source, pEnd.ToProj4String());
            if (Math.Abs(x - xy[0]) > 0.00000001)
            {
                Assert.Fail("The longitude was off by {0} decimal degrees from proj4", (x - xy[0]));
            }
            if (Math.Abs(y - xy[1]) > 0.00000001)
            {
                Assert.Fail("The latitude was off by {0} decimal degrees from proj4", (y - xy[1]));
            }
            z[0] = 0;
            Reproject.ReprojectPoints(xy, z, pEnd, pStart, 0, 1);
            prj.ProjectPoint(ref x, ref y, pEnd.ToProj4String(), source);
            if (Math.Abs(x - xy[0]) > 1 / pStart.Unit.Meters)
            {
                Assert.Fail("The X coordinate was off by {0} {1}", (x - xy[0]), pStart.GetUnitText(xy[0]));
            }
            if (Math.Abs(y - xy[1]) > 1 / pStart.Unit.Meters)
            {
                Assert.Fail("The Y coordinate was off by {0} {1}", (y - xy[1]), pStart.GetUnitText(xy[1]));
            }
        }