【AO例子】生成TIN
当然,通过GP生成也是可以的。这里介绍的是已经烂大街的生成方法。
上代码:
public ITin CreateTin(IFeatureClass featureClass, IField Z, string outputPath)
{
ITinEdit tinEdit = new TinClass();
object _ = Type.Missing;
tinEdit.InitNew((featureClass as IGeoDataset).Extent);
tinEdit.AddFromFeatureClass(featureClass, null, Z, null, esriTinSurfaceType.esriTinMassPoint, ref _);
tinEdit.SaveAs(outputPath, ref _);
tinEdit.Refresh(); return tinEdit as ITin;
}
解释:
- 传入featureClass,这个是地理数据库中的某个要素类。
- 传入Z,这个是该要素类的高程字段。
- 传入outputPath,这个是生成的Tin的完整路径。
ITinEdit是Geodatabase类库下的接口,是TinClass这个类中用于编辑Tin数据集的部分功能。
这个ITinEdit对象tinEdit做了四件事:初始化、添加要素类、保存、生成(刷新)。
之所以返回ITin,是为了方便以后对ITin的调用。
例子
/// <summary>
/// 测试生成TIN
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Btn_CreateTin_Click(object sender, EventArgs e)
{
IMap nowMap = (ArcMap.Application.Document as IMxDocument).FocusMap;
IFeatureClass fc = (nowMap.Layer[] as IFeatureLayer).FeatureClass;
IField f = fc.Fields.Field[fc.FindField("Z")];
TOOL.CreateTin(fc, f, @"D:\Code\My");
}
我在Addins的浮动窗上弄了这么一个按钮:

以上是这个按钮的点击事件:在D盘的Code文件夹下生成名称为My的Tin数据集(结果并没有大写,只生成了tin数据集,形状是文件夹)。
其中TOOL是我写的工具类,里面的CreateTin()方法是文章开头的方法。TOOL类已经被实例化了。
这个按钮是测试用的,没有写严密的逻辑判断,要求事先加载一个点或者线图层并且其高程字段的名称必须是“Z”。路径也写死了。
测试结果是成功的,并不比用工具箱慢多少。
闲聊
其实传入IFeatureLayer也可以,通过IFeatureLayer接口的FeatureClass属性亦可访问到IFeatureClass,Layer在Carto类库下主管显示,FeatureClass在Geodatabase类库下主管存储管理数据,没毛病。
【AO例子】生成TIN的更多相关文章
- ArcEngine由点生成TIN
这两天替别人写一个三维校园的展示程序.用的是SceneControl二次开发. 须要利用DOM和TIN构建三维地形.如今说下依据高程点生成TIN的过程: (1)依据高程点文件(Excel)生成点sha ...
- 【AO笔记】有关TIN数据集的常用介绍
写论文查了很多TIN的接口和属性,特此来记录一下. 转载请注明出处:博客园@秋意正寒,B站同名. 未完待续 1. Tin数据集在ArcGIS中的描述 Tin数据集在磁盘中,被ArcGIS以文件夹形式管 ...
- Matlab绘图基础——散点生成三角网(TIN)
%例一:二维三角网TIN模型的生成 X=rand(10,2)*5; dt=DelaunayTri(X(:,1),X(:,2)); %生成三角网 triplot(dt);hold on; ...
- ArcGIS地形分析--TIN及DEM的生成,TIN的显示
DEM是对地形地貌的一种离散的数字表达,是对地面特性进行空间描述的一种数字方法.途径,它的应用可遍及整个地学领域.通过对本次实习的学习,我们应加深对TIN建立过程的原理.方法的认识:熟练掌握ArcGI ...
- node生成自定义命令(yargs/commander)
第一部分可以生成一个自定义命令,例如常见的”express”,yargs和commander则可以在生成的自定义命令上做扩展,yargs将命令扩展成类似express --l xx的形式;而comma ...
- fastjson生成json时Null属性不显示
举个例子 生成JSON代码片段 Map < String , Object > jsonMap = new HashMap< String , Object>(); jsonM ...
- 不规则三角网(TIN)(转)
来自:http://blog.csdn.net/kikitamoon/article/details/8217641 Ⅰ 数字高程模型(DEM) 地球表面高低起伏,呈现一种连续变化的曲面,这种曲面无法 ...
- 在AcGIS随着大数据的生成DEM
在ArcGIS产生DEM时间.数据来源是经常有的高程点.轮廓线,该高程点.等高线密集,可能有几千万.甚至亿高程点.轮廓线. 如果您使用这些矢量数据生成TIN.不能实现的,由于生成TIN时,支持的最大结 ...
- 关于Gen生成try-catch-finally
例1: class TestExc extends Exception{} void tryItOut () throws TestExc{} void handleExc(Object o){} v ...
随机推荐
- 别开心太早,Python 官方文档的翻译差远了
近几天,很多公众号发布了 Python 官方文档的消息.然而,一个特别奇怪的现象就发生了,让人啼笑皆非. Python 文档的中文翻译工作一直是“默默无闻”,几个月前,我还吐槽过这件事<再聊聊P ...
- 使用WebGL 自定义 3D 摄像头监控模型
前言 随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的同时,在监控系统中面临着严峻的现状问 ...
- 第4章 令牌端点(Token Endpoint) - IdentityModel 中文文档(v1.0.0)
令牌端点的客户端库(OAuth 2.0和OpenID Connect)作为HttpClient一组扩展方法提供.这允许HttpClient以您喜欢的方式创建和管理生命周期- 例如静态或通过像Micro ...
- Android 9.0适配遇到的问题1
文章同步自javaexception 本周在适配Android 9.0,过程中碰到了小问题 问题1: SSL handshake timed out 解决办法: Android 9.0 开始,默认不允 ...
- SQLServer之修改数据库架构
修改数据库架构注意事项 用户与架构完全分离. ALTER SCHEMA 仅可用于在同一数据库中的架构之间移动安全对象. 若要更改或删除架构中的安全对象,请使用特定于该安全对象的 ALTER 或 DRO ...
- CF592D Super M
嘟嘟嘟 首先这题虽然不是很难,但是黄题是不是有点过分了--好歹算个蓝题啊. 手玩样例得知,这哥们儿瞬移到的城市\(A\)一定是这些被攻击的城市构成的树的一个叶子,然后他经过的最后一个城市\(B\)和\ ...
- erlang 删除老版本 安装新版本
[root@izbp1buyhgwtrvlxv3u2gqz ~]# yum remove erlang-erts-R16B-03.18.el7.x86_64Loaded plugins: fastes ...
- 不可思议的纯 CSS 实现鼠标跟随效果
直接进入正题,鼠标跟随,顾名思义,就是元素会跟随着鼠标的移动而作出相应的运动.大概类似于这样: 通常而言,CSS 负责表现,JavaScript 负责行为.而鼠标跟随这种效果属于行为,要实现通常都需要 ...
- 双因素认证(2FA)教程
所谓认证(authentication)就是确认用户的身份,是网站登录必不可少的步骤. 密码是最常见的认证方法,但是不安全,容易泄露和冒充. 越来越多的地方,要求启用 双因素认证(Two-factor ...
- jquery ajax跨域请求后台的简单例子
一.简介AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. ajax() 方法通过 HTTP 请求加载远程数据. 该方法是 jQuery 底层 AJAX 实现.简 ...