I'm new to ProjNET and NetTopologySuite, I get some points with Lon/Lat in WGS84, and the distance between two points is not with the unit of meter, so I want to reproject the coordinate system from WGS84 to UTM, here is the code
NetTopologySuite.Geometries.PrecisionModel precisionModel = new NetTopologySuite.Geometries.PrecisionModel(GeoAPI.Geometries.PrecisionModels.Floating);
ProjNet.CoordinateSystems.CoordinateSystem wgs84 = ProjNet.CoordinateSystems.GeographicCoordinateSystem.WGS84;
ProjNet.CoordinateSystems.CoordinateSystem utm50 = ProjNet.CoordinateSystems.ProjectedCoordinateSystem.WGS84_UTM(50, true);
int SRID_wgs84 = Convert.ToInt32(wgs84.AuthorityCode); //WGS84 SRID
int SRID_utm50 = Convert.ToInt32(utm50.AuthorityCode); //UTM50 SRID
ProjNet.CoordinateSystems.Transformations.CoordinateTransformationFactory ctFact = new ProjNet.CoordinateSystems.Transformations.CoordinateTransformationFactory();
GeoAPI.CoordinateSystems.Transformations.ICoordinateTransformation transformation = ctFact.CreateFromCoordinateSystems(wgs84, utm50);
NetTopologySuite.Geometries.GeometryFactory factory_wgs84 = new NetTopologySuite.Geometries.GeometryFactory(precisionModel, SRID_wgs84);
var q1_rad_wgs84 = factory_wgs84.CreatePoint(new GeoAPI.Geometries.Coordinate(Deg2Rad(117.977319), Deg2Rad(30.957558)));
var q2_rad_wgs84 = factory_wgs84.CreatePoint(new GeoAPI.Geometries.Coordinate(Deg2Rad(117.577319), Deg2Rad(30.757558)));
double[] coords_p1 = transformation.MathTransform.Transform(new double[] { q1_rad_wgs84.X, q1_rad_wgs84.Y });
double[] coords_p2 = transformation.MathTransform.Transform(new double[] { q2_rad_wgs84.X, q2_rad_wgs84.Y });
NetTopologySuite.Geometries.GeometryFactory factory_utm50 = new NetTopologySuite.Geometries.GeometryFactory(precisionModel, SRID_utm50);
var p1_utm50 = factory_utm50.CreatePoint(new GeoAPI.Geometries.Coordinate(coords_p1[0], coords_p1[1]));
var p2_utm50 = factory_utm50.CreatePoint(new GeoAPI.Geometries.Coordinate(coords_p2[0], coords_p2[1]));
var distance_in_meter = p1_utm50.Distance(p2_utm50);
but I found that, after reproject the coordinate, the value of distance_in_meter is wrong.
Is there any problems with my codes?