예제 #1
0
        private void CreatProjSystem()
        {
            AngularUnit prjLinearUnit = new AngularUnit(linearUnit.LinearUnitName, linearUnit.LinearUnitValue);

            foreach (NameValuePair projParam in projectionParam.ProjectParams)
            {
                if (projParam.Name == null)
                {
                    projectionParam.CollectionAguments();
                }
            }
            NameValuePair[] prjParams = projectionParam.ProjectParams;
            using (PrjStdsMapTableParser p = new PrjStdsMapTableParser())
            {
                if (projectionParam.CurrentEnviPrjInfoArgDefs == null)
                {
                    projectionParam.GetPrjNameItem();
                }
                NameMapItem prjName = p.GetPrjNameItemByEnviName(projectionParam.CurrentEnviPrjInfoArgDefs.PrjId.ToString());
                if (prjName == null)
                {
                    MessageBox.Show("投影名错误!", "系统消息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                _projectionCoordSystem = new ProjectionCoordSystem(prjName, projectionParam.ProjectParams, prjLinearUnit);
            }
            _spatialReference      = new SpatialReference(_geographicCoordSystem, _projectionCoordSystem);
            _spatialReference.Name = _spatialSystemName;
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="prjType">气象局定义的投影类型</param>
        /// <param name="standard_parallel_1"></param>
        /// <param name="standard_parallel_2"></param>
        /// <param name="central_meridian"></param>
        /// <returns></returns>
        public ISpatialReference GetSpatialRef(int prjType, double standard_parallel_1, double standard_parallel_2, double central_meridian)
        {
            if (prjType == 0 || prjType == 1 || prjType == -1)
            {
                return(new SpatialReference(new GeographicCoordSystem()));
            }
            IGeographicCoordSystem geoCoordSystem = new GeographicCoordSystem();

            NameValuePair[] paras = new NameValuePair[3];
            paras[0] = new NameValuePair(GetParaName("sp1"), standard_parallel_1);
            paras[1] = new NameValuePair(GetParaName("sp2"), standard_parallel_2);
            paras[2] = new NameValuePair(GetParaName("lon0"), central_meridian);
            NameMapItem            prjName        = GetProjectionName(prjType);
            IProjectionCoordSystem prjCoordSystem = new ProjectionCoordSystem(prjName, paras, new AngularUnit("Degree", 0d));

            return(new SpatialReference(geoCoordSystem, prjCoordSystem));
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="enviPrjId">MAS二期九度公司扩展的投影类型,采用ENVI的投影ID</param>
        /// <param name="standard_parallel_1"></param>
        /// <param name="standard_parallel_2"></param>
        /// <param name="latitude_of_origin"></param>
        /// <param name="central_meridian"></param>
        /// <param name="false_easting"></param>
        /// <param name="false_northing"></param>
        /// <param name="scale_factor"></param>
        /// <returns></returns>
        public ISpatialReference GetSpatialRef(int enviPrjId, double standard_parallel_1, double standard_parallel_2,
                                               double latitude_of_origin, double central_meridian,
                                               double false_easting, double false_northing, double scale_factor)
        {
            IGeographicCoordSystem geoCoordSystem = new GeographicCoordSystem();

            if (enviPrjId == 0 || enviPrjId == 1)
            {
                return(new SpatialReference(geoCoordSystem, null));
            }
            NameValuePair[] paras = new NameValuePair[7];
            paras[0] = new NameValuePair(GetParaName("sp1"), standard_parallel_1);
            paras[1] = new NameValuePair(GetParaName("sp2"), standard_parallel_2);
            paras[2] = new NameValuePair(GetParaName("lat0"), latitude_of_origin);
            paras[3] = new NameValuePair(GetParaName("lon0"), central_meridian);
            paras[4] = new NameValuePair(GetParaName("x0"), false_easting);
            paras[5] = new NameValuePair(GetParaName("y0"), false_northing);
            paras[6] = new NameValuePair(GetParaName("k0"), scale_factor);
            NameMapItem            prjName        = _stdsMapTableParser.GetPrjNameItemByEnviName(enviPrjId.ToString());
            IProjectionCoordSystem prjCoordSystem = new ProjectionCoordSystem(prjName, paras, new AngularUnit("Degree", 0d));

            return(new SpatialReference(geoCoordSystem, prjCoordSystem));
        }