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

简介:

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

 

1.创建空间参考

[csharp]  view plain  copy print?
  1. /// <summary>  
  2. /// 根据prj文件创建空间参考  
  3. /// </summary>  
  4. /// <param name="strProFile">空间参照文件</param>  
  5. /// <returns></returns>  
  6. public static ISpatialReference CreateSpatialReference(string strProFile)  
  7. {  
  8.     ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();  
  9.     ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateESRISpatialReferenceFromPRJFile(strProFile);  
  10.     return pSpatialReference;             
  11. }  
[csharp]  view plain  copy print?
  1. /// <summary>  
  2. /// 创建地理坐标系  
  3. /// </summary>  
  4. /// <param name="gcType">esriSRProjCS4Type</param>  
  5. /// <returns></returns>  
  6. public static ISpatialReference CreateGeographicCoordinate(esriSRProjCS4Type gcsType)  
  7. {  
  8.     ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();  
  9.     ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateGeographicCoordinateSystem((int)gcsType);  
  10.     return pSpatialReference;  
  11. }  
[csharp]  view plain  copy print?
  1. /// <summary>  
  2. /// 创建投影坐标系  
  3. /// </summary>  
  4. /// <param name="pcType">esriSRProjCS4Type</param>  
  5. /// <returns></returns>  
  6. public static ISpatialReference CreateProjectedCoordinate(esriSRProjCS4Type pcsType)  
  7. {  
  8.     ISpatialReferenceFactory2 pSpatialReferenceFactory = new SpatialReferenceEnvironmentClass();  
  9.     ISpatialReference pSpatialReference = pSpatialReferenceFactory.CreateProjectedCoordinateSystem((int)pcsType);  
  10.     return pSpatialReference;  
  11. }  
[csharp]  view plain  copy print?
  1. /// <summary>  
  2. /// 获取空投影  
  3. /// </summary>  
  4. /// <returns></returns>  
  5. public static ISpatialReference CreateUnKnownSpatialReference()  
  6. {  
  7.     ISpatialReference pSpatialReference = new UnknownCoordinateSystemClass();  
  8.     pSpatialReference.SetDomain(0, 99999999, 0, 99999999);//设置空间范围  
  9.     return pSpatialReference;  
  10. }  

2.获取空间参考

[csharp]  view plain  copy print?
  1. /// <summary>  
  2. /// 获取要素集空间参考  
  3. /// </summary>  
  4. /// <param name="pFeatureDataset">要素集</param>  
  5. /// <returns></returns>  
  6. public static ISpatialReference GetSpatialReference(IFeatureDataset pFeatureDataset)  
  7. {  
  8.     IGeoDataset pGeoDataset = pFeatureDataset as IGeoDataset;  
  9.     ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;  
  10.     return pSpatialReference;             
  11. }  
[csharp]  view plain  copy print?
  1. /// <summary>  
  2. /// 获取要素层空间参考  
  3. /// </summary>  
  4. /// <param name="pFeatureLayer">要素层</param>  
  5. /// <returns></returns>  
  6. public static ISpatialReference GetSpatialReferenc(IFeatureLayer pFeatureLayer)  
  7. {IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;  
  8.     IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;  
  9.     ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;  
  10.     return pSpatialReference;             
  11. }  
[csharp]  view plain  copy print?
  1. /// <summary>  
  2. /// 获取要素类空间参考  
  3. /// </summary>  
  4. /// <param name="pFeatureClass">要素类</param>  
  5. /// <returns></returns>  
  6. public static ISpatialReference GetSpatialReference(IFeatureClass pFeatureClass)  
  7. {  
  8.     IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;  
  9.     ISpatialReference pSpatialReference = pGeoDataset.SpatialReference;  
  10.     return pSpatialReference;             
  11. }  

3.修改空间参考

[csharp]  view plain  copy print?
  1. /// <summary>  
  2. /// 修改要素集空间参考  
  3. /// </summary>  
  4. /// <param name="pFeatureDataset">要素集</param>  
  5. /// <param name="pSpatialReference">新空间参考</param>  
  6. public static void AlterSpatialReference(IFeatureDataset pFeatureDataset, ISpatialReference pSpatialReference)  
  7. {  
  8.     IGeoDataset pGeoDataset = pFeatureDataset as IGeoDataset;  
  9.     IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = pGeoDataset as IGeoDatasetSchemaEdit;  
  10.     if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)  
  11.         pGeoDatasetSchemaEdit.AlterSpatialReference(pSpatialReference);  
  12. }  
[csharp]  view plain  copy print?
  1. /// <summary>  
  2. /// 修改要素类空间参考  
  3. /// </summary>  
  4. /// <param name="pFeatureClass">要素类</param>  
  5. /// <param name="pSpatialReference">新空间参考</param>  
  6. public static void AlterSpatialReference(IFeatureClass pFeatureClass, ISpatialReference pSpatialReference)  
  7. {  
  8.     IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;  
  9.     IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = pGeoDataset as IGeoDatasetSchemaEdit;  
  10.     if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)  
  11.         pGeoDatasetSchemaEdit.AlterSpatialReference(pSpatialReference);  
 
没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。



    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6305413.html ,如需转载请自行联系原作者




相关文章
|
9月前
|
算法 定位技术
基于ArcGIS:GIS空间分析复习-理论概念+案例分析2
基于ArcGIS:GIS空间分析复习-理论概念+案例分析
246 0
|
9月前
|
SQL 开发框架 数据可视化
ArcGIS Engine学习系列1 AE基础介绍
市面上AE教程大致到ArcGIS10.2,ESRI宣布从ArcGIS10.5开始便停止AE的更新,使用AO做开发,初学者可以在学习C#语言后,从AE入门,逐渐过度到AO。不同版本下AE数据类型数量Enums:枚举类型,用于实现一些定义的内容Structs:结构体Interfaces:接口Classes:类AE开发中,为了更好地管理COM对象,ESRI将这些COM对象放到不同的组件库中。
202 0
|
9月前
|
编解码 定位技术
基于ArcGIS:GIS空间分析复习-理论概念+案例分析3
基于ArcGIS:GIS空间分析复习-理论概念+案例分析
171 0
|
9月前
|
存储 数据采集 编解码
基于ArcGIS:GIS空间分析复习-理论概念+案例分析1
基于ArcGIS:GIS空间分析复习-理论概念+案例分析
412 0
|
9月前
|
定位技术 Windows
ArcGIS:按属性选择要素、按位置选择要素、空间和属性的组合查询;属性表中长度、面积等的量算
ArcGIS:按属性选择要素、按位置选择要素、空间和属性的组合查询;属性表中长度、面积等的量算
216 0
|
12月前
|
存储 数据可视化 数据挖掘
基于SPSS和ArcGIS的地区社会弱势性空间格局分析
基于SPSS和ArcGIS的地区社会弱势性空间格局分析
173 0
|
数据库
ArcGIS创建矢量要素并绘制其空间范围的方法
本文介绍在ArcGIS下属ArcMap软件中,新建点、线、面等矢量要素图层,并对新建图层的空间范围加以划定的方法~
640 1
ArcGIS创建矢量要素并绘制其空间范围的方法
|
定位技术 存储
ArcGIS for qml -关于空间参考如何选择设置
1.关于空间参考 空间参考可以通过众所周知的ID(WKID) - 整数值来引用。 官网指南中也有对此的专门说明 https://developers.arcgis.com/qt/latest/qml/guide/spatial-references.htm 要将空间数据集成到地图中或执行分析时,ArcGIS Runtime必须知道地球表面上的位置,并使用坐标来执行此操作。
1121 0
|
JavaScript API
arcgis js 空间关系查询
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bitree1/article/details/78425222 ARCGIS空间查询关系  Boundary(边界): 只有线和面才有边界。
1014 0
|
定位技术
ArcGIS Engine中的Symbols详解
本文由本人翻译ESRI官方帮助文档。尊重劳动成果,转载请注明来源。 Symbols     ArcObjects用了三种类型的Symbol(符号样式)来绘制图形特征:marker symbols(标记符号),line symbols(线符号),和fill symbols(填充符号)。
832 0