ArcEngine二次开发之投影变换

using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Geodatabase;

namespace CHN.gzGISer.ArcEngine
{
    public class CoordinateTransformation
    {
        public CoordinateTransformation()
        {

        }
        /// <summary>
        /// 投影坐标系转WGS84地理坐标系
        /// </summary>
        /// <param name="point"></param>
        /// <returns></returns>
        public static IPoint ProjectToWGS84(IPoint point)
        {
            ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();
            ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_WGS1984);
            point.Project(pSpatialReference);
            return point;
        }

        /// <summary>
        /// 投影坐标系转2000坐标系
        /// </summary>
        /// <param name="point"></param>
        /// <param name="path">2000坐标prj文件</param>
        /// <returns></returns>
        public static IPoint ProjectToCGCS2000(IPoint point, string path)
        {
            ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();
            ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile(path);
            point.Project(pSpatialReference);
            return point;
        }

        /// <summary>
        /// WGS84投影至其他
        /// </summary>
        /// <param name="point"></param>
        /// <param name="pSpatialReference"></param>
        /// <returns></returns>
        public static IPoint Geo_WGS84ToOtherProject(IPoint point, ISpatialReference pSpatialReference)
        {
            point.Project(pSpatialReference);
            return point;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/RicardoMTan/article/details/91433198
今日推荐