ArcGIS Engine中空间参照(地理坐标)相关方法总结

原创 2014年08月23日 09:38:50

1.创建空间参考

        /// <summary>
        /// 根据prj文件创建空间参考
        /// </summary>
        /// <param name="strProFile">空间参照文件</param>
        /// <returns></returns>
        public static ISpatialReference CreateSpatialReference(string strProFile)
        {
            ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();
            ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile(strProFile);
            return pSpatialReference;           
        }
        /// <summary>
        /// 创建地理坐标系
        /// </summary>
        /// <param name="gcType">esriSRProjCS4Type</param>
        /// <returns></returns>
        public static ISpatialReference CreateGeographicCoordinate(esriSRProjCS4Type gcsType)
        {
            ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();
            ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateGeographicCoordinateSystem((int)gcsType);
            return pSpatialReference;
        }
        /// <summary>
        /// 创建投影坐标系
        /// </summary>
        /// <param name="pcType">esriSRProjCS4Type</param>
        /// <returns></returns>
        public static ISpatialReference CreateProjectedCoordinate(esriSRProjCS4Type pcsType)
        {
            ISpatialReferenceFactory2 pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();
            ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateProjectedCoordinateSystem((int)pcsType);
            return pSpatialReference;
        }
        /// <summary>
        /// 获取空投影
        /// </summary>
        /// <returns></returns>
        public static ISpatialReference CreateUnKnownSpatialReference()
        {
            ISpatialReference pSpatialReference = new UnknownCoordinateSystemClass();
            pSpatialReference.SetDomain(0, 99999999, 0, 99999999);//设置空间范围
            return pSpatialReference;
        }

2.获取空间参考

        /// <summary>
        /// 获取要素集空间参考
        /// </summary>
        /// <param name="pFeatureDataset">要素集</param>
        /// <returns></returns>
        public static ISpatialReference GetSpatialReference(IFeatureDataset pFeatureDataset)
        {
            IGeoDataset pGeoDataset = pFeatureDataset as IGeoDataset;
            ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;
            return pSpatialReference;           
        }
        /// <summary>
        /// 获取要素层空间参考
        /// </summary>
        /// <param name="pFeatureLayer">要素层</param>
        /// <returns></returns>
        public static ISpatialReference GetSpatialReferenc(IFeatureLayer pFeatureLayer)
        {IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
            IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;
            ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;
            return pSpatialReference;           
        }
        /// <summary>
        /// 获取要素类空间参考
        /// </summary>
        /// <param name="pFeatureClass">要素类</param>
        /// <returns></returns>
        public static ISpatialReference GetSpatialReference(IFeatureClass pFeatureClass)
        {
            IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;
            ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;
            return pSpatialReference;           
        }

3.修改空间参考

        /// <summary>
        /// 修改要素集空间参考
        /// </summary>
        /// <param name="pFeatureDataset">要素集</param>
        /// <param name="pSpatialReference">新空间参考</param>
        public static void AlterSpatialReference(IFeatureDataset pFeatureDataset, ISpatialReference pSpatialReference)
        {
            IGeoDataset pGeoDataset = pFeatureDataset as IGeoDataset;
            IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = pGeoDataset as IGeoDatasetSchemaEdit;
            if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)
                pGeoDatasetSchemaEdit.AlterSpatialReference(pSpatialReference);
        }
        /// <summary>
        /// 修改要素类空间参考
        /// </summary>
        /// <param name="pFeatureClass">要素类</param>
        /// <param name="pSpatialReference">新空间参考</param>
        public static void AlterSpatialReference(IFeatureClass pFeatureClass, ISpatialReference pSpatialReference)
        {
            IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;
            IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = pGeoDataset as IGeoDatasetSchemaEdit;
            if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)
                pGeoDatasetSchemaEdit.AlterSpatialReference(pSpatialReference);
        }

版权声明:本站所有文章均为博主整理或原创,转载时请务必注明出处!QQ492384481

ArcEngine WGS84坐标与Beijing54坐标的相互转换

ArcEngine 实现WGS84与Beinjing54之间的相互转换
  • hndaihui
  • hndaihui
  • 2014年02月24日 09:47
  • 1249

ArcEngine下投影坐标和经纬度坐标的相互转换

坐标转换
  • jianzhanger
  • jianzhanger
  • 2011年04月14日 08:57
  • 5901

arcengine 获得FeatureClass的坐标系ISpatialReference

public static ISpatialReference  getSpatialReference(IFeatureClass pFeatureClass) {            IGe...
  • u010598851
  • u010598851
  • 2014年04月28日 19:32
  • 717

ArcEngine的插值分析

ArcEngine的插值分析搞了N久。从年前搞到年后。今天终于出来效果了。最近的效果能不能用就在说了。简单的说一下。插值分析的具体过程就不说话。一会代码给出。通过点插值得到Raster,必须进行从分类...
  • lijun5635
  • lijun5635
  • 2011年02月22日 20:39
  • 6084

arcengine栅格数据使用总结

arcengine栅格数据使用总结 两个星期以来一直与栅格数据打交道,对AO的栅格部分应该有了一定的理解,下面是自己的一点体会,希望高手指教:-) 1、栅格数据的存储类型 栅格数据一般可以存储为...
  • lysc_forever
  • lysc_forever
  • 2012年07月06日 20:36
  • 16760

GIS中的空间参考

GIS一般都是研究的基于地球的某个区域,例如一个国家
  • mytudousi
  • mytudousi
  • 2014年06月13日 15:40
  • 5201

深入理解ArcGIS的地理坐标系、大地坐标系

转http://www.3snews.net/bbs/viewthread.php?tid=1862&extra=page%3D1地理坐标:为球面坐标。 参考平面地是 椭球面。坐标单位:经纬度大地坐标...
  • cgboy88
  • cgboy88
  • 2007年09月02日 18:02
  • 5384

arcgis engine新建图层添加坐标系(地理坐标系、投影坐标系)

  • 2015年07月10日 23:18
  • 4.52MB
  • 下载

ArcGIS Engine中的刷新与不同坐标间的相互转换

ArcGIS Engine中的视图(IActiveView)控制着主程序窗口,二维中的常用视图有Map(数据视图)和PageLayout(布局视图)。IActiveView.ScreenDisplay...
  • xinying180
  • xinying180
  • 2017年03月23日 16:50
  • 1052

C#+ArcGIS Engine 空间查询

C#+ArcGIS Engine 空间查询 实现利用图层进行空间查询的功能,其功能界面如下: 其功能模块代码如下://从地图中读取目标图层和源图层 private void checkedL...
  • jhoneyan
  • jhoneyan
  • 2016年09月08日 17:19
  • 1621
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ArcGIS Engine中空间参照(地理坐标)相关方法总结
举报原因:
原因补充:

(最多只允许输入30个字)