예제 #1
0
        private void ParseDatum(IDictionary <String, String> parameters, DatumParameters datumParam)
        {
            String towgs84;

            if (parameters.TryGetValue(Proj4Keyword.towgs84, out towgs84))
            {
                double[] datumConvparameters = ParseToWGS84(towgs84);
                datumParam.SetDatumTransform(datumConvparameters);
            }

            String code;

            if (parameters.TryGetValue(Proj4Keyword.datum, out code))
            {
                Datum.Datum datum = registry.GetDatum(code);
                if (datum == null)
                {
                    throw new ArgumentException("Unknown datum: " + code);
                }
                datumParam.Datum = datum;
            }

            string grids;

            if (parameters.TryGetValue(Proj4Keyword.nadgrids, out grids))
            {
                datumParam.SetNadGrids(grids);
            }
        }
예제 #2
0
        public CoordinateReferenceSystem Parse(String name, String[] args)
        {
            if (args == null)
            {
                return(null);
            }

            IDictionary <String, String> parameters = CreateParameterMap(args);

            Proj4Keyword.CheckUnsupported(parameters.Keys);
            DatumParameters datumParam = new DatumParameters();

            ParseDatum(parameters, datumParam);
            ParseEllipsoid(parameters, datumParam);
            Datum.Datum datum     = datumParam.Datum;
            Ellipsoid   ellipsoid = datum.Ellipsoid;

            // TODO: this makes a difference - why?
            // which is better?
            //    Ellipsoid ellipsoid = datumParam.getEllipsoid();
            Projection.Projection proj = ParseProjection(parameters, ellipsoid);
            return(new CoordinateReferenceSystem(name, args, datum, proj));
        }
예제 #3
0
 public void SetDatumTransform(double[] datumTransform)
 {
     _datumTransform = datumTransform;
     // force new Datum to be created
     _datum = null;
 }
예제 #4
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="CoordinateSystem" /> class.
 /// </summary>
 /// <param name="datum"> The datum. </param>
 protected CoordinateSystem(Datum.Datum datum)
 {
     Datum = datum;
 }