GIS开发之获取坐标系

版权声明: https://blog.csdn.net/qq_33459369/article/details/88089739

        最近GIS开发中遇到两个图层坐标系的对比是否相同。在GIS开发中总会接触到坐标系,如:地理坐标系、投影坐标系等,既然用到了,那就在这里记下一笔。那么当然先要了解一下坐标系的基本概念了。

基本概念

      地理坐标系是球面坐标,参考平面是椭球面,坐标单位为经纬度。

      投影坐标系是平面坐标系,参考平面是水平面,坐标单位为米、千米等。

      投影坐标系是由地理坐标系投影转换而来的,即将不规则的地球曲面转换为平面。

地理坐标系的WKID介绍:Geographic Coordinate Systems

投影坐标系的WKID介绍:Projected Coordinate Systems

操作实例

1、从图层中获取坐标系信息

      下面是在arcmap中创建的图层,可看到有地理坐标系和投影坐标系

   

代码:

public void GetCoordinateSystem(IFeatureClass targetFClass)
{
    IGeoDataset tgeoDataset = targetFClass as IGeoDataset; //通过IGeoDataset接口获取FeatureClass坐标系统
    ISpatialReference tSpatialRef = tgeoDataset.SpatialReference;
    if (tSpatialRef is IProjectedCoordinateSystem tProCoordSys) //是否为平面坐标系
    {
        var name = tProCoordSys.Name;        //投影(平面)坐标系名称      CGCS2000_3_Degree_GK_Zone_38
        var centerline = tProCoordSys.CentralMeridian[true];//中央子午线   114.00000000000001
        //获取线性单位
        ILinearUnit linearUnit = tProCoordSys.CoordinateUnit; 
        var lineardw = linearUnit.Name;   //Meter
        //获取投影属性的详细信息
        IProjection pro = tProCoordSys.Projection; 
        var proName = pro.Name;       //投影名称    Gauss_Kruger
        //在投影坐标系中获取地理坐标系
        IGeographicCoordinateSystem geographic = tProCoordSys.GeographicCoordinateSystem;
        var gname = geographic.Name;     //地理坐标系名称    GCS_China_Geodetic_Coordinate_System_2000
    }
    else if(tSpatialRef is IGeographicCoordinateSystem geographic)  //是否为地理坐标系
    {
        var gname = geographic.Name;   //GCS_China_Geodetic_Coordinate_System_2000
        //获取角度单位
        IAngularUnit angularUnit =geographic.CoordinateUnit;
        var angulardw = angularUnit.Name;   //Degree
    }
}

猜你喜欢

转载自blog.csdn.net/qq_33459369/article/details/88089739
今日推荐