C# ArcEngine获取坐标系、投影类型、计量单位、带号、几度分带、精度

//获取参数
 IGeoDataset pDataset = TarFealyr.FeatureClass as IGeoDataset;
 ISpatialReference pSpatialReference = pDataset.SpatialReference;
 IGeographicCoordinateSystem pGeoCoordSys = (pSpatialReference as IProjectedCoordinateSystem).GeographicCoordinateSystem; //地理坐标
 IProjection pProjection = (pSpatialReference as IProjectedCoordinateSystem).Projection;    //投影坐标系
 string sProjection = pProjection.Name;    //投影坐标系
 double dCentral = (pSpatialReference as IProjectedCoordinateSystem).get_CentralMeridian(true);    //中央经线
 double dFalseEast = (pSpatialReference as IProjectedCoordinateSystem).FalseEasting;
 IDatum pDatum = pGeoCoordSys.Datum;
 ISpheroid pSpheroid = pDatum.Spheroid;
 string sCoordinateSystem = pSpheroid.Name;    //地理坐标
 dFalseEast = Math.Round(dFalseEast);
 int iDegree = int.Parse(((dFalseEast.ToString()).Substring(0, 3)));

 string sDegree = string.Empty;
 string sDegreeNo = string.Empty;
 double dPrecision = (pSpatialReference as ISpatialReferenceResolution).get_XYResolution(true);    //数据精度
 ILinearUnit pLinearUnit = (pSpatialReference as IProjectedCoordinateSystem).CoordinateUnit;    //计量单位
 string sUnit = pLinearUnit.Name;
 string sConverParam = string.Empty;
 string sVertion = string.Empty;
 string sCompany = string.Empty;
 string sParamConf = m_ZDDataSource.ParamConfigFile;


 if (iDegree > 250)
 {
     sDegree = "3";
 }
 else
 {
     sDegree = "6";
 }
if (sDegree == "3") { sDegreeNo = (Math.Floor(dCentral / 3)).ToString(); } else { sDegreeNo = (Math.Floor((dCentral + 3) / 6)).ToString(); } //地理坐标系转中文 if (sCoordinateSystem.ToUpper() == "XIAN_1980") { sCoordinateSystem = "西安80"; } else if (sCoordinateSystem.ToUpper() == "BEIJING_1954") { sCoordinateSystem = "北京54"; } //投影坐标系转中文 if (sProjection.ToUpper() == "GAUSS_KRUGER") { sProjection = "高斯克吕格"; } else if (sProjection.ToUpper() == "UTM") { sProjection = "通用横轴墨卡托"; } else if (sProjection.ToUpper() == "LAMBERT_CONFORMAL_CONIC") { sProjection = "等角割圆锥";//兰勃特等角投影、等角正轴割圆锥投影 } //单位转中文 if (sUnit.ToUpper() == "KILOMETER") { sUnit = "千米"; } else if (sUnit.ToUpper() == "METER") { sUnit = ""; } else if (sUnit.ToUpper() == "CENTIMETER") { sUnit = "厘米"; } else if (sUnit.ToUpper() == "MILLIMETER") { sUnit = "毫米"; } else if (sUnit.ToUpper() == "INCH") { sUnit = "英寸"; } else if (sUnit.ToUpper() == "MILE") { sUnit = "英里"; }

 

posted @ 2021-07-23 16:22  恋上微笑的天使  阅读(690)  评论(0)    收藏  举报