/*
         *  string Name { get;  }
         *  AngularUnit AngularUnit { get; }
         *  PrimeMeridian PrimeMeridian { get; }
         *  Datum Datum { get; }
         *  string proj4 = "+datum={0} +a={1} +b={2} +f={3} +nodefs";
         */
        private IGeographicCoordSystem GetGeoCoordSystemByProj4(Dictionary <string, string> nameValuePairs)
        {
            Datum  datum = new Datum();
            string name  = "wgs84";

            if (nameValuePairs.ContainsKey("datum"))
            {
                name                = GetGeocoordsystemNameByProj4Name(nameValuePairs["datum"]);
                datum               = GetDatum(nameValuePairs["datum"], nameValuePairs);
                datum.Name          = GetDatumNameByProj4DatumName(nameValuePairs["datum"]);
                datum.Spheroid.Name = GetSpheroidNameByProj4Name(nameValuePairs["datum"]);// nameValuePairs["datum"].ToUpper();
            }

            string unitname = "Degree";

            if (nameValuePairs.ContainsKey("units"))
            {
                unitname = nameValuePairs["units"];
            }
            AngularUnit   unit          = new AngularUnit(unitname, 0.0174532925199433d);
            string        primeName     = "Greenwich";
            PrimeMeridian primeMeridian = new PrimeMeridian(primeName, 0d);

            return(new GeographicCoordSystem(name, unit, primeMeridian, datum));
        }
 public GeographicCoordSystem(string name, AngularUnit angularUnit, PrimeMeridian primeMeridian, Datum datum)
 {
     _name              = name;
     _angularUnit       = angularUnit;
     _primeMeridian     = primeMeridian;
     _datum             = datum;
     _oracleSpatialSRID = int.MinValue;
 }
 public GeographicCoordSystem(WktItem wktItem)
 {
     _name              = wktItem.Value.Split(',')[0].Replace("\"", string.Empty);
     _angularUnit       = new AngularUnit(wktItem.GetWktItem("UNIT"));
     _primeMeridian     = new PrimeMeridian(wktItem.GetWktItem("PRIMEM"));
     _datum             = new Datum(wktItem.GetWktItem("DATUM"));
     _oracleSpatialSRID = int.MinValue;
 }
Exemple #4
0
 public bool IsSame(PrimeMeridian pm)
 {
     return(pm != null && Math.Abs(pm.Value - Value) < MINI_DOUBLE);
 }