/// <summary>
 /// Initializes a new instance of the <see cref="UniversalTransverseMercatorConverter"/> class.
 /// </summary>
 /// <param name="referenceEllipsoidType">Type of the reference ellipsoid.</param>
 public UniversalTransverseMercatorConverter(ReferenceEllipsoidType referenceEllipsoidType = ReferenceEllipsoidType.Wgs84)
 {
     this.SetEllipsoide(referenceEllipsoidType);
 }
        private void SetEllipsoide(ReferenceEllipsoidType referenceEllipsoidType)
        {
            switch (referenceEllipsoidType)
            {
            case ReferenceEllipsoidType.Airy:
                this.a          = 6377563;
                this.eccSquared = 0.00667054;
                break;

            case ReferenceEllipsoidType.AustralianNational:
            case ReferenceEllipsoidType.SouthAmerican1969:
                this.a          = 6378160;
                this.eccSquared = 0.006694542;
                break;

            case ReferenceEllipsoidType.Bessel1841:
                this.a          = 6377397;
                this.eccSquared = 0.006674372;
                break;

            case ReferenceEllipsoidType.Bessel1841Nambia:
                this.a          = 6377484;
                this.eccSquared = 0.006674372;
                break;

            case ReferenceEllipsoidType.Clarke1866:
                this.a          = 6378206;
                this.eccSquared = 0.006768658;
                break;

            case ReferenceEllipsoidType.Clarke1880:
                this.a          = 6378249;
                this.eccSquared = 0.006803511;
                break;

            case ReferenceEllipsoidType.Everest:
                this.a          = 6377276;
                this.eccSquared = 0.006637847;
                break;

            case ReferenceEllipsoidType.Fischer1960Mercury:
                this.a          = 6378166;
                this.eccSquared = 0.006693422;
                break;

            case ReferenceEllipsoidType.Fischer1968:
                this.a          = 6378150;
                this.eccSquared = 0.006693422;
                break;

            case ReferenceEllipsoidType.Grs1967:
                this.a          = 6378160;
                this.eccSquared = 0.006694605;
                break;

            case ReferenceEllipsoidType.Grs1980:
            case ReferenceEllipsoidType.Wgs84:
            case ReferenceEllipsoidType.Euref89:
            case ReferenceEllipsoidType.Etrs89:
                this.a          = 6378137;
                this.eccSquared = 0.00669438;
                break;

            case ReferenceEllipsoidType.Helmert1906:
                this.a          = 6378200;
                this.eccSquared = 0.006693422;
                break;

            case ReferenceEllipsoidType.Hough:
                this.a          = 6378270;
                this.eccSquared = 0.00672267;
                break;

            case ReferenceEllipsoidType.International:
            case ReferenceEllipsoidType.Ed50:
                this.a          = 6378388;
                this.eccSquared = 0.00672267;
                break;

            case ReferenceEllipsoidType.Krassovsky:
                this.a          = 6378245;
                this.eccSquared = 0.006693422;
                break;

            case ReferenceEllipsoidType.ModifiedAiry:
                this.a          = 6377340;
                this.eccSquared = 0.00667054;
                break;

            case ReferenceEllipsoidType.ModifiedEverest:
                this.a          = 6377304;
                this.eccSquared = 0.006637847;
                break;

            case ReferenceEllipsoidType.ModifiedFischer1960:
                this.a          = 6378155;
                this.eccSquared = 0.006693422;
                break;

            case ReferenceEllipsoidType.Wgs60:
                this.a          = 6378165;
                this.eccSquared = 0.006693422;
                break;

            case ReferenceEllipsoidType.Wgs66:
                this.a          = 6378145;
                this.eccSquared = 0.006694542;
                break;

            case ReferenceEllipsoidType.Wgs72:
                this.a          = 6378135;
                this.eccSquared = 0.006694318;
                break;

            default:
                throw new SwitchCaseDefaultException(referenceEllipsoidType);
            }
        }