/// <summary> /// Transforms a <see cref="GeoAPI.Geometries.Coordinate"/>. /// </summary> /// <param name="c">Point to transform</param> /// <param name="from">Source Projection</param> /// <param name="to">Target Projection</param> /// <returns>Transformed coordinate</returns> public static Coordinate TransformCoordinate(Coordinate c, ProjectionInfo from, ProjectionInfo to) { var xy = c.ToDoubleArray(); double[] z = !Double.IsNaN(c.Z) ? new double[1] : null; Reproject.ReprojectPoints(xy, z, from, to, 0, 1); return new Coordinate(xy[0], xy[1]) {Z = z != null ? z[0] : Coordinate.NullOrdinate}; }
/// <summary> /// Function to transform a <paramref name="c"/> using <paramref name="transform"/> /// </summary> /// <param name="c">The coordinate</param> /// <param name="transform">The transformation</param> /// <returns>A transformed coordinate</returns> public static Coordinate TransformCoordinate(Coordinate c, IMathTransform transform) { var ordinates = transform.Transform(c.ToDoubleArray()); return new Coordinate(ordinates[0], ordinates[1]); }
/// <summary> /// Function to transform a <paramref name="c"/> using <paramref name="transform"/> /// </summary> /// <param name="c">The coordinate</param> /// <param name="transform">The transformation</param> /// <returns>A transformed coordinate</returns> public static Coordinate TransformCoordinate(Coordinate c, IMathTransform transform) { #if PCL var ordinates = transform.Transform(c); return new Coordinate(ordinates); #else var ordinates = transform.Transform(c.ToDoubleArray()); return new Coordinate(ordinates[0], ordinates[1]); #endif }