Пример #1
0
        public void Setup()
        {
            TransformationFactory = new CoordinateTransformationFactory();
            Grid = GridFile.Open(GetType().Assembly.GetManifestResourceStream("ProjNet.NTv2.Tests.BETA2007.gsb"), true);

            Data = LoadData();
        }
Пример #2
0
        public void TestNAD()
        {
            var NAD27 = SRIDReader.GetCSbyID(4267);
            var NAD83 = SRIDReader.GetCSbyID(4269);

            // https://github.com/OSGeo/proj-datumgrid/tree/master/north-america
            var grid = GridFile.Open(@"ntv2_0.gsb");

            var ct = TransformationFactory.CreateFromCoordinateSystems(NAD27, NAD83, grid, false);

            // http://www.apsalin.com/nad-conversion.aspx
            // https://www.ngs.noaa.gov/NCAT/

            double[] input    = new[] { -79.378243, 43.664087 };
            double[] expected = new[] { -79.3780316, 43.6641356 };

            var actual = ct.MathTransform.Transform(input);

            CollectionAssert.AreEqual(expected, actual);
        }
Пример #3
0
 /// <summary>
 /// Creates a transformation between two coordinate systems.
 /// </summary>
 /// <param name="factory">The coordinate transformation factory.</param>
 /// <param name="sourceCS">Source coordinate system.</param>
 /// <param name="targetCS">Target coordinate system.</param>
 /// <param name="gridFile">The grid file path.</param>
 /// <param name="inverse">Indicates whether to use the inverse grid transform.</param>
 /// <returns></returns>
 public static ICoordinateTransformation CreateFromCoordinateSystems(this CoordinateTransformationFactory factory,
                                                                     CoordinateSystem sourceCS, CoordinateSystem targetCS, string gridFile, bool inverse)
 {
     return(CreateFromCoordinateSystems(factory, sourceCS, targetCS, GridFile.Open(gridFile), inverse));
 }