ArcEngine DEM叠加影像
代码执行前:

代码执行后:

影像叠加代码:
/// <summary>
/// 叠加DEM
/// </summary>
/// <param name="pRasterLayer">DEM栅格</param>
/// <param name="pOutRastLay">影像栅格</param>
private void SufraceDEM(IRasterLayer pRasterLayer, IRasterLayer pOutRastLay)
{
IRasterSurface pRasterSurface = new RasterSurface();
pRasterSurface.PutRaster(pRasterLayer.Raster, );
ISurface pSurface = pRasterSurface as ISurface;
ILayerExtensions pLayExtensions = pOutRastLay as ILayerExtensions;
I3DProperties p3DProperties = null;
for (int i = ; i < pLayExtensions.ExtensionCount; i++)
{
if (pLayExtensions.get_Extension(i) is I3DProperties)
{
p3DProperties = pLayExtensions.get_Extension(i) as I3DProperties;
}
}
p3DProperties.ZFactor =; //夸张系数
p3DProperties.BaseOption = esriBaseOption.esriBaseSurface;
p3DProperties.BaseSurface = pSurface;
p3DProperties.Apply3DProperties(pOutRastLay);
}
按钮调用代码:
ILayer pLayer = getLayerByname("dem_project.tif");
IRasterLayer pDemRasterLayer = pLayer as IRasterLayer;
ILayer pImgLayer = getLayerByname("sx_img_3857.tif");
IRasterLayer pImgRasterLayer = pImgLayer as IRasterLayer;
SufraceDEM(pDemRasterLayer, pImgRasterLayer);
axSceneControl1.SceneGraph.RefreshViewers();
getLayerByname方法:
/// <summary>
/// 获取指定图层通过名称
/// </summary>
private ILayer getLayerByname(String name)
{
ILayer layer = null;
int count = axSceneControl1.Scene.LayerCount;
if (count == ) MessageBox.Show("请加载图层");
for (int i = ; i < count; i++)
{
layer = axSceneControl1.Scene.get_Layer(i);
if (name == layer.Name.ToString())
{
break;
}
}
return layer; }
另外扩展一下影像叠加TIN的方法:
/// <summary>
/// 叠加TIN
/// </summary>
private void AddTINSufrace(IRasterLayer pOutRastLay, ITin tin)
{
ITinAdvanced pTINAdvanced = tin as ITinAdvanced;
ISurface pSurface = pTINAdvanced.Surface;
ILayerExtensions pLayExtensions = pOutRastLay as ILayerExtensions;
I3DProperties p3DProperties = null;
for (int i = ; i < pLayExtensions.ExtensionCount; i++)
{
if (pLayExtensions.get_Extension(i) is I3DProperties)
{
p3DProperties = pLayExtensions.get_Extension(i) as I3DProperties;
}
}
p3DProperties.ZFactor =;
p3DProperties.BaseOption = esriBaseOption.esriBaseSurface;
p3DProperties.BaseSurface = pSurface;
p3DProperties.Apply3DProperties(pOutRastLay);
}
TIN叠加调用:
ILayer layer = getLayerByname("Tin");
ITinLayer tinlayer = layer as ITinLayer;
ILayer pImgLayer = getLayerByname("sx_img_3857.tif");
IRasterLayer pImgRasterLayer = pImgLayer as IRasterLayer;
AddTINSufrace(pImgRasterLayer, tinlayer.Dataset);
ArcEngine DEM叠加影像的更多相关文章
- ArcEngine 栅格数据
1.ArcEngine中的栅格数据组织方式(详细信息见:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/009t0000 ...
- 【FLUENT案例】04:利用DDPM+DEM模拟鼓泡流化床
1 引言2 问题描述3 准备4 FLUENT前处理 1 引言 DEM碰撞模型扩展了DPM模型的功能,能够用于稠密颗粒流动的模拟.该模型可以与DDPM(Dense DPM)模型何用以模拟颗粒对主相的阻碍 ...
- Arcgis, ArcEngine, Arcgis Server使用开发汇总 索引
ArcGIS系列软件license及安装: Arcgis SDE10.1 和 Arcgis server10.1的授权文件license tnt_esri.dat Arcgis8.1安装license ...
- 海拔高度图*.dem文件的读取—vtkDEMReader
vtkDEMReader reads digital elevation files and creates image data. Digital elevation files are produ ...
- geotrellis使用(七)记录一次惨痛的bug调试经历以及求DEM坡度实践
眼看就要端午节了,屌丝还在写代码,话说过节也不给轻松,折腾了一天终于解决了一个BUG,并完成了老板安排的求DEM坡度的任务,那么就分两段来表. 一.BUG调试 首先记录一天的BUG调试,简单copy了 ...
- 关于印发利用DEM确定耕地坡度分级技术规定(试行)的通知
下载:http://files.cnblogs.com/files/gisoracle/%E5%88%A9%E7%94%A8DEM%E7%A1%AE%E5%AE%9A%E8%80%95%E5%9C%B ...
- 【转载】Arcengine效率探究之二——属性的更新
文转载自hymyjl2010<Arcengine效率探究之二——属性的更新> 修改一批要素的属性有多种方法,当数据量较大时,若选择不当可能会大大影响速度. 一.IRowBuffer 方 ...
- 【ESRI论坛6周年征文】ArcEngine注记(Anno/ Label/Element等)处理专题 -入门篇
原发表于ESRI中国社区,转过来.我的社区帐号:jhlong http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=122097 ----------- ...
- ArcGIS 10与ArcEngine 10安装及破解
1 2 3 4 5 分步阅读 一键约师傅 百度师傅高质屏和好师傅,拯救你的碎屏机 百度经验:jingyan.baidu.com 现在常见的破解方法在下面的地址中已经详细附图说明了,但是这种破解方法,想 ...
随机推荐
- MATLAB常用函数, 常见问题
MATLAB常用函数 1.常用取整函数 round(x):四舍五入函数 floor(x) : 向下取整, 即 floor(1.2)=1, floor(1.8) = 1 ceil(x) : 向上取整, ...
- dos taskkill 命令
C:\Users\asn\Desktop>taskkill /? TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter ...
- Spring boot+JPA+Druid
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- JPA一对多循环引用的解决&&JackSon无限递归问题
说是解决,其实不是很完美的解决的,写出来只是想记录一下这个问题或者看一下有没有哪位仁兄会的,能否知道一二. 下面说说出现问题: 问题是这样的,当我查询一个一对多的实体的时候,工具直接就爆了,差不多我就 ...
- 初次使用pycharm 的interpreter option为空解决办法。
第一步:进入Setting. 第二步:进入Project中的Project Interpreter.选择添加即可.
- 关于Android studio Haxm加速器安装
首先,在SDK manager中要安装如下选项 安装后,在启动虚拟机时如果提示你没有Install Haxm,在目录sdk\extras\intel\Hardware_Accelerated_Exec ...
- 浅谈LOG日志的写法
文章来源于公司的大牛 1 Log的用途 不管是使用何种编程语言,日志输出几乎无处不再.总结起来,日志大致有以下几种用途: l 问题追踪:通过日志不仅仅包括我们程序的一些bug,也可以在安装配置时,通 ...
- 牛客wannafly 挑战赛14 B 前缀查询(trie树上dfs序+线段树)
牛客wannafly 挑战赛14 B 前缀查询(trie树上dfs序+线段树) 链接:https://ac.nowcoder.com/acm/problem/15706 现在需要您来帮忙维护这个名册, ...
- ELK系统分析nginx日志
一.nginx nginx 服务器日志的log_format格式: log_format main '$remote_addr - $remote_user [$time_local] "$ ...
- Visual Studio Team Services使用教程【5】:Readers tfs组成员添加
2017.4.23之后建议朋友看下面的帖子 TFS2017 & VSTS 实战(繁体中文视频) Visual Studio Team Services(VSTS)与敏捷开发ALM实战关键报告( ...