/// <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); }
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; } }