zoukankan      html  css  js  c++  java
  • ArcEngine影像图配准

    转自原文 ArcEngine影像图配准

    影像图配准主要包括以下几个方面

    1.打开影像图
    2.配准
    3.影像图入库/保存
    1.打开影像图的代码以前已经写过了。
    2.配准
      配准 主要使用IGeoReference这个接口来完成工作。
      还有使用ActiveView来进行坐标转换,将MapControl中鼠标的点击位置转换为
      地图和影像图上的坐标。
      下面介绍IGeoReference接口
       首先RasterLayer实现了这个接口
       CanGeoRef 监测该图层是否可以做配准
       PointsTransform 将鼠标的位置转换为栅格文件上的相对坐标。
       Rectify 将纠正的结果保存为一个新的栅格文件相当于另存为
       Register 纠正的结果生成World文件和栅格文件保存在同一个目录下
       Reset 取消纠正 但是Register 之前的操作不能恢复。
      
       最重要的是下面三个
       Shift  一点纠正就是平移
       TwoPointsAdjust 两点配准有一定的缩放
       Warp 三点或以上配准   

    注意事项

    1.每次Register是一个标志阶段
        这每次配准的过程中必须把上次Register 以来的所有配准点数据都使用上。
        例如:
        首先Register了
        然后 1.使用了一点平移
             2.接下来 又接受了一个点 这个时候就要使用 两点配准。
             3.接下来 又接受了一个点 这个时候就要使用 三点配准了。
    2.配准一般还有一个附加的功能
      就是 让用户保存每次的配准过程 并且 提供每次配准过程的精度。这个需要自己补充。
    3.入库/金字塔

    IRasterProps props=(IRasterProps)this.pRasterLayer.Raster;
    m_rasEnv=props.Extent;
    IBasicRasterSdeConnection pBasic=new BasicRasterSdeLoader();
    //提供连接信息
    pBasic.ServerName ="服务期名称" ;
    pBasic.Instance ="端口号" ;
    pBasic.UserName ="用户名" ;
    pBasic.Password ="密码" ;   
    //提供影像图
    pBasic.Raster =this.pRasterLayer .Raster ;  
    //名称
    pBasic.SdeRasterName=rasterNameInDB;
           
    IRasterSdeServerOperation pRo=(IRasterSdeServerOperation)pBasic;
    //导入数据
    try
    {     
     pRo.Create();
     pRo.ComputeStatistics();
    }
    catch(Exception ex)
    {
     System.Windows .Forms .MessageBox .Show ("影像数据入库失败!"+ex.Message );
     return;
    }
    //建立金字塔
    IRasterSdeStorage2  pRs=(IRasterSdeStorage2)pRo;
    pRs.PyramidOption=esriRasterSdePyramidOptEnum.esriRasterSdePyramidBuildSkipFirstLevel;
    pRs.PyramidResampleType=rstResamplingTypes.RSP_BilinearInterpolation;
    pRo.BuildPyramids();

    这个影像图就这样到数据库中去了
    注意:
        一般自己还要建立一个关于影像图的原数据表。用来记录那些影像图是属于自己的。还有名称的转换问题,因为中文名称是不可以的。

  • 相关阅读:
    hibernate一级缓存和二级缓存的区别
    springmvc中的controller是单例的
    Java 冒泡排序
    spring mvc做上传图片,文件小于10k就不生成临时文件了
    java程序生成二维码
    MySQL调优
    根据从redis缓存的数据查询出来,在从数据库中取出所有的数据,俩个数据进行比较,去掉重复,剩下库中新插入的数据,取出新数据,然后把redis中的缓存数据清空把从数据库中查出来的所有数据放到redis缓存中
    找出list中的不同元素、删除两个list中相同的对象
    PowerDesigner如何将消失的工具栏显示出来
    Oracle基础(九) Oracle的体系结构
  • 原文地址:https://www.cnblogs.com/arxive/p/8057710.html
Copyright © 2011-2022 走看看