Beispiel #1
0
 /// <summary>
 /// The ellps parameter in a proj4 string will only work with certain
 /// pre-defined spheroids, enumerated in the Proj4Ellipsoids enumeration.
 /// Custom spheroids can be specified but will use the a and b parameters
 /// when creating a proj4 parameter instead of using the ellps parameter.
 /// </summary>
 /// <param name="knownEllipse">Any of several predefined geographic ellipses</param>
 public Spheroid(Proj4Ellipsoids knownEllipse)
 {
     AddNames();
     AssignKnownEllipsoid(knownEllipse);
 }
Beispiel #2
0
 /// <summary>
 /// The ellps parameter in a proj4 string will only work with certain
 /// pre-defined spheroids, enumerated in the Proj4Ellipsoids enumeration.
 /// Custom spheroids can be specified but will use the a and b parameters
 /// when creating a proj4 parameter instead of using the ellps parameter.
 /// </summary>
 /// <param name="knownEllipse">Any of several predefined geographic ellipses</param>
 public Spheroid(Proj4Ellipsoids knownEllipse)
 {
     AddNames();
     AssignKnownEllipsoid(knownEllipse);
 }
Beispiel #3
0
        private void AssignKnownEllipsoid(Proj4Ellipsoids knownEllipse)
        {
            _name           = knownEllipse.ToString();
            _knownEllipsoid = knownEllipse;
            switch (knownEllipse)
            {
            case Proj4Ellipsoids.Airy_1830:
                _equatorialRadius = 6377563.396;
                _polarRadius      = 6356256.910;
                break;

            case Proj4Ellipsoids.AiryModified:
                _equatorialRadius = 6377340.189;
                _polarRadius      = 6356034.446;
                break;

            case Proj4Ellipsoids.Andrae_1876:
                _equatorialRadius = 6377104.43;
                SetInverseFlattening(300);
                break;

            case Proj4Ellipsoids.AppPhysics_1965:
                _equatorialRadius = 6378137.0;
                SetInverseFlattening(298.25);
                break;

            case Proj4Ellipsoids.Austrailia_SouthAmerica:
                _equatorialRadius = 6378160.0;
                SetInverseFlattening(298.25);
                break;

            case Proj4Ellipsoids.Bessel_1841:
                _equatorialRadius = 6377397.155;
                SetInverseFlattening(299.1528128);
                break;

            case Proj4Ellipsoids.BesselNamibia:
                _equatorialRadius = 6377483.865;
                SetInverseFlattening(299.1528128);
                break;

            case Proj4Ellipsoids.Clarke_1866:
                _equatorialRadius = 6378206.4;
                _polarRadius      = 6356583.8;
                break;

            case Proj4Ellipsoids.ClarkeModified_1880:
                _equatorialRadius = 6378249.145;
                SetInverseFlattening(293.4663);
                break;

            case Proj4Ellipsoids.CPM_1799:
                _equatorialRadius = 6375738.7;
                SetInverseFlattening(334.29);
                break;

            case Proj4Ellipsoids.Custom:     // Default to WGS84
                _equatorialRadius = 6378137.0;
                SetInverseFlattening(298.257223563);
                break;

            case Proj4Ellipsoids.Delambre_1810:
                _equatorialRadius = 6376428;
                SetInverseFlattening(311.5);
                break;

            case Proj4Ellipsoids.Engelis_1985:
                _equatorialRadius = 6378136.05;
                SetInverseFlattening(298.2566);
                break;

            case Proj4Ellipsoids.Everest_1830:
                _equatorialRadius = 6377276.345;
                SetInverseFlattening(300.8017);
                break;

            case Proj4Ellipsoids.Everest_1948:
                _equatorialRadius = 6377304.063;
                SetInverseFlattening(300.8017);
                break;

            case Proj4Ellipsoids.Everest_1956:
                _equatorialRadius = 6377301.243;
                SetInverseFlattening(300.8017);
                break;

            case Proj4Ellipsoids.Everest_1969:
                _equatorialRadius = 6377295.664;
                SetInverseFlattening(300.8017);
                break;

            case Proj4Ellipsoids.Everest_SS:
                _equatorialRadius = 6377298.556;
                SetInverseFlattening(300.8017);
                break;

            case Proj4Ellipsoids.Fischer_1960:
                _equatorialRadius = 6378166;
                SetInverseFlattening(298.3);
                break;

            case Proj4Ellipsoids.Fischer_1968:
                _equatorialRadius = 6378150;
                SetInverseFlattening(298.3);
                break;

            case Proj4Ellipsoids.FischerModified_1960:
                _equatorialRadius = 6378155;
                SetInverseFlattening(298.3);
                break;

            case Proj4Ellipsoids.GRS_1967:
                _equatorialRadius = 6378160.0;
                SetInverseFlattening(298.2471674270);
                break;

            case Proj4Ellipsoids.GRS_1980:
                _equatorialRadius = 6378137.0;
                SetInverseFlattening(298.257222101);
                break;

            case Proj4Ellipsoids.Helmert_1906:
                _equatorialRadius = 6378200;
                SetInverseFlattening(298.3);
                break;

            case Proj4Ellipsoids.Hough:
                _equatorialRadius = 6378270.0;
                SetInverseFlattening(297);
                break;

            case Proj4Ellipsoids.IAU_1976:
                _equatorialRadius = 6378140.0;
                SetInverseFlattening(298.257);
                break;

            case Proj4Ellipsoids.International_1909:
                _equatorialRadius = 6378388.0;
                SetInverseFlattening(297);
                break;

            case Proj4Ellipsoids.InternationalNew_1967:
                _equatorialRadius = 6378157.5;
                _polarRadius      = 6356772.2;
                break;

            case Proj4Ellipsoids.Krassovsky_1942:
                _equatorialRadius = 6378245.0;
                SetInverseFlattening(298.3);
                break;

            case Proj4Ellipsoids.Kaula_1961:
                _equatorialRadius = 6378163;
                SetInverseFlattening(298.24);
                break;

            case Proj4Ellipsoids.Lerch_1979:
                _equatorialRadius = 6378139;
                SetInverseFlattening(298.257);
                break;

            case Proj4Ellipsoids.Maupertius_1738:
                _equatorialRadius = 6397300;
                SetInverseFlattening(191);
                break;

            case Proj4Ellipsoids.Merit_1983:
                _equatorialRadius = 6378137.0;
                SetInverseFlattening(298.257);
                break;

            case Proj4Ellipsoids.NavalWeaponsLab_1965:
                _equatorialRadius = 6378145.0;
                SetInverseFlattening(298.25);
                break;

            case Proj4Ellipsoids.Plessis_1817:
                _equatorialRadius = 6376523;
                _polarRadius      = 6355863;
                break;

            case Proj4Ellipsoids.SoutheastAsia:
                _equatorialRadius = 6378155.0;
                _polarRadius      = 6356773.3205;
                break;

            case Proj4Ellipsoids.SovietGeodeticSystem_1985:
                _equatorialRadius = 6378136.0;
                SetInverseFlattening(298.257);
                break;

            case Proj4Ellipsoids.Sphere:
                _equatorialRadius = 6370997.0;
                _polarRadius      = 6370997.0;
                break;

            case Proj4Ellipsoids.Walbeck:
                _equatorialRadius = 6376896.0;
                _polarRadius      = 6355834.8467;
                break;

            case Proj4Ellipsoids.WGS_1960:
                _equatorialRadius = 6378165.0;
                SetInverseFlattening(298.3);
                break;

            case Proj4Ellipsoids.WGS_1966:
                _equatorialRadius = 6378145.0;
                SetInverseFlattening(298.25);
                break;

            case Proj4Ellipsoids.WGS_1972:
                _equatorialRadius = 6378135.0;
                SetInverseFlattening(298.26);
                break;

            case Proj4Ellipsoids.WGS_1984:
                _equatorialRadius = 6378137.0;
                SetInverseFlattening(298.257223563);
                break;
            }
        }
Beispiel #4
0
        private void AssignKnownEllipsoid(Proj4Ellipsoids knownEllipse)
        {
            _name = knownEllipse.ToString();
            _knownEllipsoid = knownEllipse;
            switch (knownEllipse)
            {
                case Proj4Ellipsoids.Airy_1830:
                    _equatorialRadius = 6377563.396;
                    _polarRadius = 6356256.910;
                    break;
                case Proj4Ellipsoids.AiryModified:
                    _equatorialRadius = 6377340.189;
                    _polarRadius = 6356034.446;
                    break;
                case Proj4Ellipsoids.Andrae_1876:
                    _equatorialRadius = 6377104.43;
                    SetInverseFlattening(300);
                    break;
                case Proj4Ellipsoids.AppPhysics_1965:
                    _equatorialRadius = 6378137.0;
                    SetInverseFlattening(298.25);
                    break;
                case Proj4Ellipsoids.Austrailia_SouthAmerica:
                    _equatorialRadius = 6378160.0;
                    SetInverseFlattening(298.25);
                    break;
                case Proj4Ellipsoids.Bessel_1841:
                    _equatorialRadius = 6377397.155;
                    SetInverseFlattening(299.1528128);
                    break;
                case Proj4Ellipsoids.BesselNamibia:
                    _equatorialRadius = 6377483.865;
                    SetInverseFlattening(299.1528128);
                    break;
                case Proj4Ellipsoids.Clarke_1866:
                    _equatorialRadius = 6378206.4;
                    _polarRadius = 6356583.8;
                    break;
                case Proj4Ellipsoids.ClarkeModified_1880:
                    _equatorialRadius = 6378249.145;
                    SetInverseFlattening(293.4663);
                    break;
                case Proj4Ellipsoids.CPM_1799:
                    _equatorialRadius = 6375738.7;
                    SetInverseFlattening(334.29);
                    break;
                case Proj4Ellipsoids.Custom: // Default to WGS84
                    _equatorialRadius = 6378137.0;
                    SetInverseFlattening(298.257223563);
                    break;
                case Proj4Ellipsoids.Delambre_1810:
                    _equatorialRadius = 6376428;
                    SetInverseFlattening(311.5);
                    break;
                case Proj4Ellipsoids.Engelis_1985:
                    _equatorialRadius = 6378136.05;
                    SetInverseFlattening(298.2566);
                    break;
                case Proj4Ellipsoids.Everest_1830:
                    _equatorialRadius = 6377276.345;
                    SetInverseFlattening(300.8017);
                    break;
                case Proj4Ellipsoids.Everest_1948:
                    _equatorialRadius = 6377304.063;
                    SetInverseFlattening(300.8017);
                    break;
                case Proj4Ellipsoids.Everest_1956:
                    _equatorialRadius = 6377301.243;
                    SetInverseFlattening(300.8017);
                    break;
                case Proj4Ellipsoids.Everest_1969:
                    _equatorialRadius = 6377295.664;
                    SetInverseFlattening(300.8017);
                    break;
                case Proj4Ellipsoids.Everest_SS:
                    _equatorialRadius = 6377298.556;
                    SetInverseFlattening(300.8017);
                    break;
                case Proj4Ellipsoids.Fischer_1960:
                    _equatorialRadius = 6378166;
                    SetInverseFlattening(298.3);
                    break;
                case Proj4Ellipsoids.Fischer_1968:
                    _equatorialRadius = 6378150;
                    SetInverseFlattening(298.3);
                    break;
                case Proj4Ellipsoids.FischerModified_1960:
                    _equatorialRadius = 6378155;
                    SetInverseFlattening(298.3);
                    break;
                case Proj4Ellipsoids.GRS_1967:
                    _equatorialRadius = 6378160.0;
                    SetInverseFlattening(298.2471674270);
                    break;
                case Proj4Ellipsoids.GRS_1980:
                    _equatorialRadius = 6378137.0;
                    SetInverseFlattening(298.257222101);
                    break;
                case Proj4Ellipsoids.Helmert_1906:
                    _equatorialRadius = 6378200;
                    SetInverseFlattening(298.3);
                    break;
                case Proj4Ellipsoids.Hough:
                    _equatorialRadius = 6378270.0;
                    SetInverseFlattening(297);
                    break;
                case Proj4Ellipsoids.IAU_1976:
                    _equatorialRadius = 6378140.0;
                    SetInverseFlattening(298.257);
                    break;
                case Proj4Ellipsoids.International_1909:
                    _equatorialRadius = 6378388.0;
                    SetInverseFlattening(297);
                    break;
                case Proj4Ellipsoids.InternationalNew_1967:
                    _equatorialRadius = 6378157.5;
                    _polarRadius = 6356772.2;
                    break;
                case Proj4Ellipsoids.Krassovsky_1942:
                    _equatorialRadius = 6378245.0;
                    SetInverseFlattening(298.3);
                    break;
                case Proj4Ellipsoids.Kaula_1961:
                    _equatorialRadius = 6378163;
                    SetInverseFlattening(298.24);
                    break;
                case Proj4Ellipsoids.Lerch_1979:
                    _equatorialRadius = 6378139;
                    SetInverseFlattening(298.257);
                    break;
                case Proj4Ellipsoids.Maupertius_1738:
                    _equatorialRadius = 6397300;
                    SetInverseFlattening(191);
                    break;
                case Proj4Ellipsoids.Merit_1983:
                    _equatorialRadius = 6378137.0;
                    SetInverseFlattening(298.257);
                    break;
                case Proj4Ellipsoids.NavalWeaponsLab_1965:
                    _equatorialRadius = 6378145.0;
                    SetInverseFlattening(298.25);
                    break;
                case Proj4Ellipsoids.Plessis_1817:
                    _equatorialRadius = 6376523;
                    _polarRadius = 6355863;
                    break;
                case Proj4Ellipsoids.SoutheastAsia:
                    _equatorialRadius = 6378155.0;
                    _polarRadius = 6356773.3205;
                    break;
                case Proj4Ellipsoids.SovietGeodeticSystem_1985:
                    _equatorialRadius = 6378136.0;
                    SetInverseFlattening(298.257);
                    break;
                case Proj4Ellipsoids.Sphere:
                    _equatorialRadius = 6370997.0;
                    _polarRadius = 6370997.0;
                    break;
                case Proj4Ellipsoids.Walbeck:
                    _equatorialRadius = 6376896.0;
                    _polarRadius = 6355834.8467;
                    break;
                case Proj4Ellipsoids.WGS_1960:
                    _equatorialRadius = 6378165.0;
                    SetInverseFlattening(298.3);
                    break;
                case Proj4Ellipsoids.WGS_1966:
                    _equatorialRadius = 6378145.0;
                    SetInverseFlattening(298.25);
                    break;
                case Proj4Ellipsoids.WGS_1972:
                    _equatorialRadius = 6378135.0;
                    SetInverseFlattening(298.26);
                    break;
                case Proj4Ellipsoids.WGS_1984:
                    _equatorialRadius = 6378137.0;
                    SetInverseFlattening(298.257223563);
                    break;

            }

        }