public void Test(string sourceResourceName, string targetResourceName, double projectDelta, double unprojectDelta) { var sourceData = GoldData.GetReadyReader(sourceResourceName); var targetData = GoldData.GetReadyReader(targetResourceName); var sourceCrs = GoldData.GetCrs(sourceData); var targetCrs = GoldData.GetCrs(targetData); Assert.IsNotNull(sourceCrs); Assert.IsNotNull(targetCrs); var operationGenerator = new HelmertCrsCoordinateOperationPathGenerator(); var operationPath = operationGenerator.Generate(sourceCrs, targetCrs).First(); Assert.IsNotNull(operationPath); var compiler = new StaticCoordinateOperationCompiler(); var forward = new CompiledConcatenatedTransformation<GeographicCoordinate, Point2>(compiler.Compile(operationPath) as IEnumerable<ITransformation>); var inverse = forward.GetInverse(); while (sourceData.Read() && targetData.Read()) { var geogreaphicExpected = sourceData.CurrentLatLon(); var projectedExpected = targetData.CurrentPoint2D(); var projected = forward.TransformValue(geogreaphicExpected); Assert.AreEqual(projectedExpected.X, projected.X, projectDelta); Assert.AreEqual(projectedExpected.Y, projected.Y, projectDelta); var geographic = inverse.TransformValue(projectedExpected); Assert.AreEqual(geogreaphicExpected.Latitude, geographic.Latitude, unprojectDelta); Assert.AreEqual(geogreaphicExpected.Longitude, geographic.Longitude, unprojectDelta); } }
public void Test(string sourceResourceName, string targetResourceName, double projectDelta, double unprojectDelta) { var sourceData = GoldData.GetReadyReader(sourceResourceName); var targetData = GoldData.GetReadyReader(targetResourceName); var sourceCrs = GoldData.GetCrs(sourceData); var targetCrs = GoldData.GetCrs(targetData); Assert.IsNotNull(sourceCrs); Assert.IsNotNull(targetCrs); var operationGenerator = new HelmertCrsCoordinateOperationPathGenerator(); var operationPath = operationGenerator.Generate(sourceCrs, targetCrs).First(); Assert.IsNotNull(operationPath); var compiler = new StaticCoordinateOperationCompiler(); var forward = new CompiledConcatenatedTransformation <GeographicCoordinate, Point2>(compiler.Compile(operationPath) as IEnumerable <ITransformation>); var inverse = forward.GetInverse(); while (sourceData.Read() && targetData.Read()) { var geogreaphicExpected = sourceData.CurrentLatLon(); var projectedExpected = targetData.CurrentPoint2D(); var projected = forward.TransformValue(geogreaphicExpected); Assert.AreEqual(projectedExpected.X, projected.X, projectDelta); Assert.AreEqual(projectedExpected.Y, projected.Y, projectDelta); var geographic = inverse.TransformValue(projectedExpected); Assert.AreEqual(geogreaphicExpected.Latitude, geographic.Latitude, unprojectDelta); Assert.AreEqual(geogreaphicExpected.Longitude, geographic.Longitude, unprojectDelta); } }