Example #1
0
        private IProjectionCoordSystem GetPrjCoordSystemByProj4(Dictionary <string, string> nameValuePairs)
        {
            string coordType = nameValuePairs["proj"];

            if (coordType == "latlong")
            {
                return(null);
            }
            List <NameMapItem> args = _prjStdsMapTableParser.GetPrjParameterItems();

            if (args == null)
            {
                return(null);
            }
            ProjectionCoordSystem prj = new ProjectionCoordSystem();

            prj.Name = _prjStdsMapTableParser.GetPrjNameItemByPrj4(coordType);
            List <NameValuePair> paras = new List <NameValuePair>();

            foreach (NameMapItem arg in args)
            {
                if (nameValuePairs.ContainsKey(arg.Proj4Name))
                {
                    paras.Add(new NameValuePair(_prjStdsMapTableParser.GetPrjParamterItemByPrj4(arg.Proj4Name), double.Parse(nameValuePairs[arg.Proj4Name])));
                }
            }
            prj.Parameters = paras.Count > 0 ? paras.ToArray() : null;
            return(prj);
        }
        public object Clone()
        {
            ProjectionCoordSystem prj = new ProjectionCoordSystem();

            if (_name != null)
            {
                prj._name = _name.Clone() as NameMapItem;
            }
            if (_parameters != null && _parameters.Length > 0)
            {
                prj._parameters = CloneParameters();
            }
            if (_unit != null)
            {
                prj._unit = _unit.Clone() as AngularUnit;
            }
            return(prj);
        }
Example #3
0
        /*
         * PROJECTION["Mercator"],
         * PARAMETER["False_Easting",0.0],
         * PARAMETER["False_Northing",0.0],
         * PARAMETER["Central_Meridian",0.0],
         * PARAMETER["Standard_Parallel_1",0.0],
         * UNIT["Meter",1.0]
         */
        protected override IProjectionCoordSystem ParseProjectionCoordSystem(WktItem wktItem)
        {
            if (wktItem == null)//Is Graphics Coordinate System
            {
                return(null);
            }
            string      name    = wktItem.Value.Split(',')[0].Replace("\"", string.Empty);
            NameMapItem prjName = GetPrjName(wktItem.GetWktItem("PROJECTION"));  //5ms

            if (prjName == null)
            {
                throw new Exception("投影坐标系统\"" + name + "\"没有在系统中预先配置。");
            }
            NameValuePair[]       parameters = GetPrjParameters(wktItem.GetWktItems("PARAMETER"));
            AngularUnit           unit       = new AngularUnit(wktItem.GetWktItem("UNIT"));
            ProjectionCoordSystem prj        = new ProjectionCoordSystem(prjName, parameters, unit);

            prj.NameDes = name;
            return(prj);
        }