public static PointF ToXy(this ApplicationDataModel.Shapes.Point point, double minX, double minY, double delta)
        {
            var x = (point.X - minX) / delta + 25;
            var y = (point.Y - minY) / delta + 25;

            return(new PointF((float)x, (float)y));
        }
        public static ApplicationDataModel.Shapes.Point ToUtm(this ApplicationDataModel.Shapes.Point point)
        {
            var latitudeInRadians  = point.Y * ConstDeg2Rad;
            var longitudeInRadians = point.X * ConstDeg2Rad;

            var longitudeOriginInRadians = GetLongOrigin(point.X) * ConstDeg2Rad;

            var n  = A / Math.Sqrt(1 - EccSquared * Math.Sin(latitudeInRadians) * Math.Sin(latitudeInRadians));
            var t  = Math.Tan(latitudeInRadians) * Math.Tan(latitudeInRadians);
            var c  = EccPrimeSquared * Math.Cos(latitudeInRadians) * Math.Cos(latitudeInRadians);
            var a1 = Math.Cos(latitudeInRadians) * (longitudeInRadians - longitudeOriginInRadians);

            var m = A * ((1 - EccSquared / 4 - 3 * EccSquared * EccSquared / 64 - 5 * EccSquared * EccSquared * EccSquared / 256) * latitudeInRadians
                         - (3 * EccSquared / 8 + 3 * EccSquared * EccSquared / 32 + 45 * EccSquared * EccSquared * EccSquared / 1024) * Math.Sin(2 * latitudeInRadians)
                         + (15 * EccSquared * EccSquared / 256 + 45 * EccSquared * EccSquared * EccSquared / 1024) * Math.Sin(4 * latitudeInRadians)
                         - (35 * EccSquared * EccSquared * EccSquared / 3072) * Math.Sin(6 * latitudeInRadians));

            var utmEasting = K0 * n * (a1 + (1 - t + c) * a1 * a1 * a1 / 6
                                       + (5 - 18 * t + t * t + 72 * c - 58 * EccPrimeSquared) * a1 * a1 * a1 * a1 * a1 / 120)
                             + 500000.0;

            var utmNorthing = K0 * (m + n * Math.Tan(latitudeInRadians) * (a1 * a1 / 2 + (5 - t + 9 * c + 4 * c * c) * a1 * a1 * a1 * a1 / 24
                                                                           +
                                                                           (61 - 58 * t + t * t + 600 * c - 330 * EccPrimeSquared) * a1 * a1 * a1 * a1 *
                                                                           a1 * a1 / 720));

            if (point.Y < 0)
            {
                utmNorthing += 10000000.0;
            }

            return(new ApplicationDataModel.Shapes.Point {
                X = utmEasting, Y = utmNorthing
            });
        }