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. Binary Tree Zigzag Level Order Traversal——关于广度优先的经典面试题

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  2. 【Mac】appium的环境搭建

    1.下载appium并安装,进入官网下载即可 http://appium.io 2.下载安装pip,因为pip执行命令的安装,会出现某些包的下载失败,因此使用brew进行 https://pypi.o ...

  3. php面向对象中public与var的区别

    public和var的作用差不多 因为 var定义的变量如果没有加protected 或 private则默认为public php4 中一般是用 varphp5 中就一般是用 public了 现在基 ...

  4. **[权限控制] 利用CI钩子实现权限认证

    http://codeigniter.org.cn/forums/thread-10877-1-1.html 一直没找到CI的权限认证扩展,以前好像找到过一个老外的扩展,不过不怎么好用,现在记不清了, ...

  5. day2、购物商城

    作业:购物商城 商品展示,价格 买,加入购物车 付款,钱不够 代码如下: import codecs #登录接口,用户名密码都正确登录成功,否则失败 def login(your_name,your_ ...

  6. 如何设计一个基于Node.js和Express的网站架构?

    前言 今年七月份,我和几个小伙伴们合伙建立了一个开发团队.业务开展如火如荼的同时,团队宣传就提上了日程,所以迫切需要搭建公司网站出来.确定目标后我们就开始考虑如果构建一个企业网站.先是进行业内调查,看 ...

  7. 久邦数码(3G门户)面试

    久邦数码(3G门户)面试 1.数组和链表的区别(为什么数组带有索引) 2.数据库(手写选出一个公司年龄最大的100个员工) 3.一百个数查找一个数 利用二分查找一个数在最差的情况下至少比较多少次 4. ...

  8. 使用CSS更改图标的颜色

    我们经常在很多网站上见到更改网站的主题时,图标的颜色也改变了,我们总是觉的这一项功能非常伟大,因为我们知道使用CSS是无法完成更改图片的颜色的.那么,网站上随心所欲的图标颜色是采用N多个图片不断的切换 ...

  9. CodeVS1380 没有上司的舞会 [树形DP]

    题目传送门 没有上司的舞会 题目描述 Description Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职员有一个 ...

  10. 使用Jedis

    前言 借助Jedis可以在Java上操作Redis. Jedis 到https://mvnrepository.com/去找jar包下载即可. 如果是maven项目: <!-- https:// ...