ArcEngine由点生成TIN
这两天替别人写一个三维校园的展示程序。用的是SceneControl二次开发。
须要利用DOM和TIN构建三维地形。如今说下依据高程点生成TIN的过程:
(1)依据高程点文件(Excel)生成点shapefile
(2)使用ITinEdit的AddFromFeatureClass方法生成TIN
高程点数据格式例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2lzZXJfd2h1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
操作界面例如以下:
:
生成TIN效果图:
代码非常easy理解,例如以下:
#region 创建TIN
private void button_ok_Click(object sender , EventArgs e)
{
try
{
strTinName=textBox_TINName.Text;
outFolder=textBox_outpath.Text;
if (strTinName=="")
{
MessageBox.Show("请输入TIN名称!");
}
else if (outFolder=="")
{
MessageBox.Show("请选择TIN保存路径");
}
else
{
//生成点shape
Excel2Shape excel2shape = new Excel2Shape(textBox_point.Text);
excel2shape.CreateShapeFromExcel(); //获取shapefile
string path = excel2shape.path;
string name = excel2shape.name; IWorkspaceFactory pWSFac = new ShapefileWorkspaceFactoryClass();
IFeatureWorkspace pFeatureWS = pWSFac.OpenFromFile(path , 0) as IFeatureWorkspace;
IFeatureClass pFeatureClass = pFeatureWS.OpenFeatureClass(name);
IField pField = pFeatureClass.Fields.get_Field(pFeatureClass.FindField("Z"));
//创建TIN
ITin pTin = Create_TIN(pFeatureClass , pField , outFolder);
ITinLayer pTinlayer = new TinLayerClass();
pTinlayer.Dataset = pTin;
pTinlayer.Name = strTinName; pSceneControl.SceneGraph.Scene.AddLayer(pTinlayer as ILayer , true); this.Close();
} }
catch (System.Exception ex)
{
MessageBox.Show(ex.Message + "创建TIN失败。");
} }
/// <summary>
/// 创建TIN
/// </summary>
/// <param name="pFeatureClass">点要素类</param>
/// <param name="pField">Z字段</param>
/// <param name="pPath">路径</param>
public ITin Create_TIN(IFeatureClass pFeatureClass , IField pField , string pPath)
{
IGeoDataset pGeoDataset = pFeatureClass as IGeoDataset;
ITinEdit pTinEdit = new TinClass();
pTinEdit.InitNew(pGeoDataset.Extent);
object pObj = Type.Missing; pTinEdit.AddFromFeatureClass(pFeatureClass , null , pField , null ,
esriTinSurfaceType.esriTinMassPoint , ref pObj);
if (System.IO.File.Exists(pPath))
{
_3DCampus.helper.FolderHelper.DeleteFolder(pPath);
}
pTinEdit.SaveAs(pPath , ref pObj);
pTinEdit.Refresh();
return pTinEdit as ITin; }
#endregion
ArcEngine由点生成TIN的更多相关文章
- 【AO例子】生成TIN
当然,通过GP生成也是可以的.这里介绍的是已经烂大街的生成方法. 上代码: public ITin CreateTin(IFeatureClass featureClass, IField Z, st ...
- 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 ...
- 不规则三角网(TIN)(转)
来自:http://blog.csdn.net/kikitamoon/article/details/8217641 Ⅰ 数字高程模型(DEM) 地球表面高低起伏,呈现一种连续变化的曲面,这种曲面无法 ...
- 在AcGIS随着大数据的生成DEM
在ArcGIS产生DEM时间.数据来源是经常有的高程点.轮廓线,该高程点.等高线密集,可能有几千万.甚至亿高程点.轮廓线. 如果您使用这些矢量数据生成TIN.不能实现的,由于生成TIN时,支持的最大结 ...
- 【AO笔记】有关TIN数据集的常用介绍
写论文查了很多TIN的接口和属性,特此来记录一下. 转载请注明出处:博客园@秋意正寒,B站同名. 未完待续 1. Tin数据集在ArcGIS中的描述 Tin数据集在磁盘中,被ArcGIS以文件夹形式管 ...
- arcgis如何制作DEM数据
DEM描述的是地面高程信息,它在测绘.水文.气象.地貌.地质.土壤.工程建设.通讯.军事等国民经济和国防建设以及人文和自然科学领域有着广泛的应用.如在工程建设上,可用于如土方量计算.通视分析等:在防洪 ...
- skyline TerraBuilder 制作MPT方法与技巧(1)
MPT是skyline独有的三维地形数据格式,可简单理解为 影像图+高程=三维地形(三维底图),以下介绍用skyline TerraBuilder(以下简称TB)制作MPT的方法与技巧 用TB制作MP ...
- AE+SceneControl源代码共享
近来的,博友发私信或邮件交换,第一次使用前SceneControl代做一点project股票,做的很粗糙.我们希望对大家有帮助,欢迎留言交流哈萨克斯坦. 除了主开.保存.数据加载.询价,几个功能主要是 ...
随机推荐
- mysql允许外部连接设置
错误信息: SQL Error (1130): Host ‘192.168.1.88’ is not allowed to connect to this MySQL server 说明所连接的用户帐 ...
- 推断字符串string是数字、json结构、xml结构
import org.json.JSONException; import org.json.JSONObject; import org.dom4j.DocumentException; impor ...
- ip地址个数的计算
一个IP地址,却关联太多的知识 二进制与 8 比特 电脑中显示出来的数字是 10 进制的,键盘的每一个键都由一个 8 位的二进制编码,所以 1 字节等于 8 比特.对数字而言,1 的二进制是 0000 ...
- IAR FOR STM8 学习笔记 固件库 GPIO
经过一番挣扎,还是决定使用官方的固件库了.. 从网上下一个STM8S的固件库,记得是FOR IAR的. 找到里面的IAR模板就可以开始用了. 这些都是直接写好的库函数,可以直接调用,但首先得先读懂,先 ...
- 5.Node.js 安装配置
转自:http://www.runoob.com/nodejs/nodejs-tutorial.html Node.js安装包及源码下载地址为:https://nodejs.org/en/downlo ...
- 1.21 Python基础知识 - python常用模块-2
一.xml 什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 X ...
- 基于Linux系统的Nagios网络管理模块的实现
基于Linux 系统的Nagios网络管理模块的实现 1.引言 随着计算机网络的普及,网络管理已成为信息时代中最重要的问题之一.在现有的技术条件下,人们希望有一个更加稳定可靠的网络环境.计算机网络管理 ...
- 《WPF》Expander控件简单美化
示例图: Expander控件功能很常见, 一般用于系统左侧的菜单收缩面板. 1.主要的组成 一个头部(header) 和 一个 内容(content) 组成. <Expander Expand ...
- spring @configuration使用
http://yaobenzhang.blog.163.com/blog/static/2143951132014811105138824/
- hdu 2795 Billboard(线段树单点更新)
Billboard Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...