C#ProgNET4GeoAPI库坐标转换

首先安装这个库

stPosition sourPt = new stPosition();
stPosition destPt = new stPosition();
 sourPt.X = SC.X;
 sourPt.Y = SC.Y;

BJ54PrjToGeo(38, 114, sourPt, out destPt);

函数

/// <summary>

        /// 2000投影坐标转换为wgs84地理坐标
                /// </summary>
                /// <param name="iCodeNum">带号</param>
                /// <param name="dCenter_Meridian">中央经线</param>
                /// <param name="sourPt">原始投影坐标数据</param>
                /// <param name="destPt">转换后地理坐标</param>  
        public static void BJ54PrjToGeo(int iCodeNum, double dCenter_Meridian, stPosition sourPt, out stPosition destPt)
        {
            destPt = new stPosition(0, 0);
            try
            {
                //高斯克吕格投影类型|横轴莫卡托投影类型
                string D_China_2000 = string.Format("PROJCS[\"hejl\","
                      + "GEOGCS[\"GCS_China_Geodetic_Coordinate_System_2000\","
                      + "DATUM[\"D_China_2000\", SPHEROID[\"CGCS2000\",  6378137.0, 298.257222101]],"
                      + "PRIMEM[\"Greenwich\", 0.0],"
                      + "UNIT[\"Degree\", 0.017453292519943]],"
                      + "PROJECTION[\"Transverse Mercator\"],"
                      + "PARAMETER[\"False_Easting\", {0}500000.0],"
                      + "PARAMETER[\"False_Northing\", 0.0],"
                      + "PARAMETER[\"Central_Meridian\", {1} ],"
                      + "PARAMETER[\"Scale_Factor\", 1],"
                      + "PARAMETER[\"Latitude_Of_Origin\", 0],"
                      + "UNIT[\"Meter\", 1]];", iCodeNum, dCenter_Meridian);
               
                IProjectedCoordinateSystem fromCS = CoordinateSystemWktReader.Parse(D_China_2000,Encoding.UTF8) as IProjectedCoordinateSystem;
                GeographicCoordinateSystem toCS = (GeographicCoordinateSystem)fromCS.GeographicCoordinateSystem;
                List<double[]> pts = new List<double[]>();
                double[] xy = new double[] { sourPt.X, sourPt.Y };
                pts.Add(xy);
                List<double[]> results = new List<double[]>();
                //执行转换函数
                MeterToDegree(fromCS, toCS, pts, out results);
                destPt.X = results[0][0];
                destPt.Y = results[0][1];
                //38535450.001,2976084.886  114.3568301651,26.8953514214 1.995903208524966,0.4694124357843669
                //114.35683016513332  26.895351421991617   1.995903208525547  0.4694124357946926
                //114.35683016513332  26.895351421991617   1.9959032085255415,0.4694124357816075
                //114.35683016513332  26.895351421991617
                //114.356830165133  26.8953514212419  102.01459817871236 38.408204515863723
                //37451432.456 4321506.811  110.43914372077828 39.025700375573919
                //114.36063370975924  26.831490547510775
            }
            catch (SystemException sysEx)
            {

            }
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值