zoukankan      html  css  js  c++  java
  • ArcEngine 坐标系变换

    arcgis中对于坐标的管理有三个:

      1、数据文件本身的坐标系,体现在数据坐标x,y上。

      2、空间参考文件,一般是和数据配套存在的。详细定义数据的地理坐标、投影坐标等,主要是在arcgis相关软件加载数据的时候使用。

      3、arcgis等软件显示时的坐标,是在加载数据的时候动态投影变换得到的。在软件中的一些操作都是以此为基础的。(对于toolbox中的工具是否使用此坐标,现在我还不知道)

    对于坐标的变换:

      IGeometry接口提供了SpatialReference属性和Project方法来直接变换IGeometry对象的坐标

      1)地理坐标转投影坐标:

              IPolygon iparea;
                    ISpatialReferenceFactory ispReferenceFactory = new SpatialReferenceEnvironmentClass();
                    IProjectedCoordinateSystem ipCoorSys = ispReferenceFactory.CreateProjectedCoordinateSystem(2383);//2362xian 80 38度带  2383 xian 114
                    IGeographicCoordinateSystem earthref = ispReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCS3Type.esriSRGeoCS_Xian1980); //西安80地理坐标4610
                    iparea.SpatialReference = earthref;
                    iparea.Project(ipCoorSys);

      2)投影到地理的方法正好相反:

      3)这里需要注意的是,IPolygon如果是COM对象的话转换不过来,只能重新构造新的面对象进行转换。(自己编程中遇到的,也不知道是不是所有的都是这样)

      4)IArea计算面积,只能先将对应几何对象的坐标转为投影坐标才能得到正确的面积。(IArea计算面积应该是直接利用点集的坐标,直接算的,没有考虑其坐标系类型)

  • 相关阅读:
    【leetcode】 61. 旋转链表
    【leetcode】 55 跳跃游戏
    【leetcode 53】 最大子序和
    【leetcode】不同路径
    【leetcode】692. 前K个高频单词
    vue a标签使用@click
    函数式接口的使用
    【转】MyBatis中的collection两种使用方法
    xaf--homepage
    Windows10--设置鼠标自带光圈效果
  • 原文地址:https://www.cnblogs.com/z964166725/p/4228939.html
Copyright © 2011-2022 走看看