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

来自:http://blog.csdn.net/u011170962/article/details/38776101

1.创建空间参考

  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. }
  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. }
  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. }
  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.获取空间参考

  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. }
  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. }
  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.修改空间参考

  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. }
  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);
  12. }

ArcGIS Engine中空间参照(地理坐标)相关方法总结转的更多相关文章

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

    转自原文 ArcGIS Engine中空间参照(地理坐标)相关方法总结 1.创建空间参考 /// <summary> /// 根据prj文件创建空间参考 /// </summary& ...

  2. ArcGIS Engine中的8种数据访问 (转)

    数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提.ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异.本文主要介绍一下以下八种数据格式在ArcGI ...

  3. ArcGIS Engine中的数据访问

    ArcGIS Engine中的数据访问 数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提.ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异.本文 ...

  4. [转载]ArcGIS Engine 中的多线程使用

    ArcGIS Engine 中的多线程使用 原文链接 http://anshien.blog.163.com/blog/static/169966308201082441114173/   一直都想写 ...

  5. ArcGIS Engine中的8种数据访问

    数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提.ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异.本文主要介绍一下以下八种数据格式在ArcGI ...

  6. ArcGIS engine中Display类库——Display

    转自原文  ArcGIS engine中Display类库——Display Display类库包括了用于显示GIS数据的对象.除了负责实际输出图像的主要显示对象(display object)外,这 ...

  7. ArcGIS Engine 中的多线程使用

    转自原文ArcGIS Engine 中的多线程使用 一直都想写写AE中多线程的使用,但一直苦于没有时间,终于在中秋假期闲了下来.呵呵,闲话不说了,进入正题! 大家都了解到ArcGIS中处理大数据量时速 ...

  8. ArcGIS engine中Display类库 (局部刷新)

    转自原文 ArcGIS engine中Display类库 (局部刷新) Display类库包括了用于显示GIS数据的对象.除了负责实际输出图像的主要显示对象(display object)外,这个类库 ...

  9. ArcGIS Engine中的重点类库介绍

    转自原文ArcGIS Engine中的重点类库介绍 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他类库提供服务的组件.System ...

随机推荐

  1. 用OpenSSL命令行生成证书文件

    用OpenSSL命令行生成证书文件 1.首先要生成服务器端的私钥(key文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加 ...

  2. LightOJ - 1179 Josephus Problem(约瑟夫环)

    题目链接:https://vjudge.net/contest/28079#problem/G 题目大意:约瑟夫环问题,给你n和k(分别代表总人数和每次要数到k),求最后一个人的位置. 解题思路:因为 ...

  3. JavaScript与C#互通的DES加解密算法

    原文地址:传送门 本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DE ...

  4. java 用maven 构建项目时@Override错误的解决办法

    把工程编译时使用JDK1.6以上版本可以解决. eclipse中 Preferences-->Java-->Compiler-->Configure Project Specific ...

  5. pt--适配方案

    原文地址:一种粗暴快速的Android全屏幕适配方案

  6. mybatis基础之一

    SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE conf ...

  7. 洛谷P3273 [SCOI2011] 棘手的操作 [左偏树]

    题目传送门 棘手的操作 题目描述 有N个节点,标号从1到N,这N个节点一开始相互不连通.第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条边,连接第x个节点和第y个节点 A1 ...

  8. Codeforces Round #436 (Div. 2) E. Fire(dp 记录路径)

    E. Fire time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...

  9. Kail Linux渗透测试教程之Recon-NG框架

    Kail Linux渗透测试教程之Recon-NG框架 信息收集 信息收集是网络攻击最重要的阶段之一.要想进行渗透攻击,就需要收集目标的各类信息.收集到的信息越多,攻击成功的概率也就越大.本章将介绍信 ...

  10. Mac os 下的文件权限管理

    Mac os 下的文件权限管理 命令 ls -l -A 结果 -rw-r--r-- 1 user admin 2326156 4 12 15:24 adb 横线代表空许可.r代表只读,w代表写,x代表 ...