Example #1
0
        /// <summary>
        /// 获取投影坐标系的描述信息
        /// Get the description information of the projected coordinate system
        /// </summary>
        private String GetEarthPrjStr(PrjCoordSys crtPrj)
        {
            StringBuilder prjStrBuilder = new StringBuilder();

            try
            {
                PrjParameter crtPrjParm = crtPrj.PrjParameter;
                prjStrBuilder.AppendLine(m_type + crtPrj.Name);
                prjStrBuilder.AppendLine(m_name + crtPrj.Projection.Name);
                prjStrBuilder.AppendLine(m_longitude + crtPrjParm.CentralMeridian.ToString("0.000000"));
                prjStrBuilder.AppendLine(m_latitude + crtPrjParm.CentralParallel.ToString());
                prjStrBuilder.AppendLine(m_firparallel + crtPrjParm.StandardParallel1.ToString());
                prjStrBuilder.AppendLine(m_secparallel + crtPrjParm.StandardParallel2.ToString());
                prjStrBuilder.AppendLine(m_offsetX + crtPrjParm.FalseEasting.ToString(".0000"));
                prjStrBuilder.AppendLine(m_offsetY + crtPrjParm.FalseNorthing.ToString(".0000"));
                prjStrBuilder.AppendLine(m_scalefactor + crtPrjParm.ScaleFactor.ToString());
                prjStrBuilder.AppendLine(m_azimuth + crtPrjParm.Azimuth.ToString(".0000"));
                prjStrBuilder.AppendLine(m_firlongitude + crtPrjParm.FirstPointLongitude.ToString());
                prjStrBuilder.AppendLine(m_seclongitude + crtPrjParm.SecondPointLongitude.ToString());
                prjStrBuilder.AppendLine(m_geocoordsys + crtPrj.GeoCoordSys.Name);
                prjStrBuilder.AppendLine(m_geodatum + crtPrj.GeoCoordSys.GeoDatum.Name);
                prjStrBuilder.AppendLine(m_datumspheroid + crtPrj.GeoCoordSys.GeoDatum.GeoSpheroid.Name);
                prjStrBuilder.AppendLine(m_majorradius + crtPrj.GeoCoordSys.GeoDatum.GeoSpheroid.Axis.ToString(".00"));
                prjStrBuilder.AppendLine(m_flattening + crtPrj.GeoCoordSys.GeoDatum.GeoSpheroid.Flatten.ToString());
                prjStrBuilder.AppendLine(m_centralmeridian + crtPrj.GeoCoordSys.GeoPrimeMeridian.LongitudeValue.ToString("0.000000"));
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
            }
            return(prjStrBuilder.ToString());
        }
 /// <summary>
 /// 拷贝构造函数。
 /// </summary>
 /// <param name="prjParameter">地图投影参数对象。</param>
 /// <exception cref="ArgumentNullException">地图投影参数对象为 null 时抛出异常。</exception>
 public PrjParameter(PrjParameter prjParameter)
 {
     if (prjParameter == null) throw new ArgumentNullException();
     this.Azimuth = prjParameter.Azimuth;
     this.CentralMeridian = prjParameter.CentralMeridian;
     this.CentralParallel = prjParameter.CentralParallel;
     this.FalseEasting = prjParameter.FalseEasting;
     this.FalseNorthing = prjParameter.FalseNorthing;
     this.FirstPointLongitude = prjParameter.FirstPointLongitude;
     this.FirstStandardParallel = prjParameter.FirstStandardParallel;
     this.ScaleFactor = prjParameter.ScaleFactor;
     this.SecondPointLongitude = prjParameter.SecondPointLongitude;
     this.SecondStandardParallel = prjParameter.SecondStandardParallel;
 }
Example #3
0
        // 按照不同的投影类型,初始化投影坐标系
        // Initialize the projection coordinates by the different projection type.
        private PrjCoordSys GetTargetPrjCoordSys(int type)
        {
            PrjCoordSys  targetPrjCoordSys = null;
            PrjParameter parameter         = null;
            Projection   projection        = null;

            switch (type)
            {
            case 1:
            {
                targetPrjCoordSys            = new PrjCoordSys(PrjCoordSysType.UserDefined);
                projection                   = new Projection(ProjectionType.GaussKruger);
                targetPrjCoordSys.Projection = projection;
                parameter = new PrjParameter();
                parameter.CentralMeridian      = 110;
                parameter.StandardParallel1    = 20;
                parameter.StandardParallel2    = 40;
                targetPrjCoordSys.PrjParameter = parameter;
            }
            break;

            case 2:
            {
                targetPrjCoordSys            = new PrjCoordSys(PrjCoordSysType.UserDefined);
                projection                   = new Projection(ProjectionType.TransverseMercator);
                targetPrjCoordSys.Projection = projection;
                parameter = new PrjParameter();
                parameter.CentralMeridian      = 110;
                parameter.StandardParallel1    = 0;
                targetPrjCoordSys.PrjParameter = parameter;
            }
            break;

            case 3:
            {
                targetPrjCoordSys            = new PrjCoordSys(PrjCoordSysType.UserDefined);
                projection                   = new Projection(ProjectionType.LambertConformalConic);
                targetPrjCoordSys.Projection = projection;
                parameter = new PrjParameter();
                parameter.CentralMeridian      = 110;
                parameter.StandardParallel1    = 30;
                targetPrjCoordSys.PrjParameter = parameter;
            }
            break;

            default:
                break;
            }
            return(targetPrjCoordSys);
        }