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 = "英里"; }
本博有部分内容来自网络,如有问题请联系:hebeilijianghua@qq.com,并注明来自博客园。
浙公网安备 33010602011771号