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); } }
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)); }
public void SetDatumTransform(double[] datumTransform) { _datumTransform = datumTransform; // force new Datum to be created _datum = null; }
/// <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; }