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();

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

  • 相关阅读:
    python ascii codec can't decode
    python文件编码说明 coding=utf-8
    windbg的使用
    在后台运行Python脚本服务
    ubuntu下更改分辨率
    【转】VC调试的时候 “没有调试信息,未加载符号”
    常用正则表达式——中文匹配、拉丁匹配
    SQL的经典操作——批量复制同行的其它列数据到其它列数据
    关于C++对汉字拼音的处理(3)
    关于环境变量设置是否需要重启的问题
  • 原文地址:https://www.cnblogs.com/arxive/p/8057710.html
Copyright © 2011-2022 走看看