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();
这个影像图就这样到数据库中去了
注意:
一般自己还要建立一个关于影像图的原数据表。用来记录那些影像图是属于自己的。还有名称的转换问题,因为中文名称是不可以的。
ArcEngine影像图配准的更多相关文章
- arcgis中nodata设为0及其小技巧
一.arcgis中nodata设为0 两个栅格进行叠加,有时会有一部分没有数据,即用identify点击该区域,Value为NoDat a,而不是像其他非空区域一样有值. 此时注意nodata区域要赋 ...
- arcgis中栅格矢量计算技巧收藏
编辑 一.计算面积 ( 可以帮我们计算小班面积 )添加 AREA 字段,然后右键点击字段列,然后点击 CALCULATE VALUES; ---> 选择 ADVANCED -->把下 ...
- ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE、personal/File、ShapeFile、CAD数据、影像图、影像数据集)
ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业数据库需要使用SDE来管理,所以需要使用SDE的Workspace来表示连接.在AE接口中, ...
- ArcEngine中打开各种数据源(WorkSpace)的连接
(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业 ...
- ArcEngine中打开各种数据源(WorkSpace)的连接(转)
ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开 ...
- ArcEngine中打开各种数据源(WorkSpace)的连接http://www.cnblogs.com/feilong3540717/archive/2011/08/07/2129906.html
ArcEngine中打开各种数据源(WorkSpace)的连接 ArcEngine中打开各种数据源(WorkSpace)的连接 (SDE.personal/File.ShapeFile.CAD数据.影 ...
- [转] ArcEngine中打开各种数据源(WorkSpace)的连接
原文 ArcEngine中打开各种数据源(WorkSpace)的连接(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源. ...
- arcengine 开发经典帖
http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=25575&page=1&extra= 使用ArcGIS Engine 开发自定义 ...
- arcengine 开发经典帖 【强烈推荐仔细研读】
转自原文 arcengine 开发经典帖 使用ArcGIS Engine 开发自定义GIS应用: 第一部分:使用ArcGIS Engine 发布自定义GIS应用软件-全面了解ArcGIS Engine ...
随机推荐
- Servlet 3.0 新特性详解 (转载)
原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/ Servlet 3.0 新特性概述 Servlet 3.0 作为 Jav ...
- javaee 第八周作业
hashcode()和equals()的作用.区别.联系 先来试想一个场景,如果你想查找一个集合中是否包含某个对象,那么程序应该怎么写呢?通常的做法是逐一取出每个元素与要查找的对象一一比较,当发现两者 ...
- Windows程序设计2(消息机制、菜单)
一 .小记; PostQuitMessage(0); 产生WM_QUIT消息给进程队列,且立即返回,同时使得消息循环退出,使得进程终止.(其实它通过PostMessage(hWnd,WM_QUIT,0 ...
- 4.03 使用NULL代替默认值
问题:在一个定义了默认值的列插入数据,并且需要不管该列的默认值是什么,都将该列值设为NULL.考虑一下下面的表: create table D (id interger default 0, foo ...
- 数据库管理系统X
大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约 ...
- python实战教程之自动扫雷(自己存下来学习之用)
3.python的第三方库win32api,win32gui,win32con,Pillow,numpy,opencv可通过 pip install --upgrade SomePackage 来进行 ...
- C++内联函数的使用
1.为什么要用内联函数? 在C++中我们通常定义以下函数来求两个整数的最大值: int max(int a, int b) { return a > b ? a : b; } 为这么一个小的操作 ...
- 弹跳加载动画特效Bouncing loader
一款非常常用的css 加载动画,这款CSS3 Loading动画主要由几个小球通过规律的上下跳动,渐隐渐显而成,效果十分生动.流畅.兼容IE8以上,尤其适合在移动端中使用,基本代替了图片实现加载的效果 ...
- BZOJ 1968_P1403 [AHOI2005]约数研究--p2260bzoj2956-模积和∑----信息学中的数论分块
第一部分 P1403 [AHOI2005]约数研究 题目描述 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel II”的长时间运算成为了可能.由于在去年一 ...
- openwrt vsftp
vsftp: very security ftp openwrt配置:make menuconfig ==> network ==> file transfer ==> vsftp ...