博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ArcEngine下一个TIN生成的轮廓
阅读量:4555 次
发布时间:2019-06-08

本文共 3565 字,大约阅读时间需要 11 分钟。

太晚了,直接连接的源代码:

///         /// TIN生成等高线        ///         /// 等高线间距        public void Tin2Contour(string path_,string name_,double pInterval)        {            //获取TIN            ITinLayer pTinlayer = GetLayerByName(pScene , comboBox_TIN.Text) as ITinLayer;            ITin pTin = pTinlayer.Dataset as ITin;            //创建Contour shape            IWorkspaceFactory pWSFac = new ShapefileWorkspaceFactoryClass();            IFeatureWorkspace pFeatureWS = pWSFac.OpenFromFile(path_ , 0) as IFeatureWorkspace;            if (System.IO.File.Exists(path_+"\\"+name_+".shp"))            {                System.IO.File.Delete(path_ + "\\" + name_ + ".shp");                System.IO.File.Delete(path_ + "\\" + name_ + ".dbf");                System.IO.File.Delete(path_ + "\\" + name_ + ".shx");            }            IFields pFields = CreateShapeFields(esriGeometryType.esriGeometryPolyline);            pFeatureWS.CreateFeatureClass(name_ , pFields , null , null , esriFeatureType.esriFTSimple , "Shape" , null);                       IFeatureClass pContourFeatureClass = pFeatureWS.OpenFeatureClass(name_);                     //生成等高线            ITinSurface pTinSurface = pTin as ITinSurface;            pTinSurface.Contour(0 , pInterval , pContourFeatureClass , "Contour" , 0);            //加入等高线图层            IFeatureLayer pFeatureLayer = new FeatureLayerClass();            pFeatureLayer.FeatureClass = pContourFeatureClass;                      IGeoFeatureLayer pGeoFeatureLayer = pFeatureLayer as IGeoFeatureLayer;            pGeoFeatureLayer.DisplayAnnotation = true;            pGeoFeatureLayer.DisplayField = "Contour";            pGeoFeatureLayer.Name = pContourFeatureClass.AliasName + "_Contour";            //设置线样式            ILineSymbol pLineSymbol = new SimpleLineSymbolClass();            pLineSymbol.Color = GetRGBColor(32 , 47 , 247);            pLineSymbol.Width = 2;            ISimpleRenderer pRender = pGeoFeatureLayer.Renderer as ISimpleRenderer;            pRender.Symbol = pLineSymbol as ISymbol;            pScene.AddLayer(pFeatureLayer as ILayer);        }
#region 创建几何字段        ///         /// 创建几何字段        ///         ///         /// 
public IFields CreateShapeFields(esriGeometryType p_esriGeotype) { IFields pFields = new FieldsClass(); IFieldsEdit pFieldsEdit = pFields as IFieldsEdit; IGeometryDef pGeoDef = new GeometryDefClass(); IGeometryDefEdit pGeoDefEdit = pGeoDef as IGeometryDefEdit; pGeoDefEdit.GeometryType_2 = p_esriGeotype; pGeoDefEdit.SpatialReference_2 = (ISpatialReference) new UnknownCoordinateSystem(); IField pFld = new FieldClass(); IFieldEdit pFldEdit = pFld as IFieldEdit; pFldEdit.Name_2 = "shape"; pFldEdit.IsNullable_2 = false; pFldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry; pFldEdit.GeometryDef_2 = pGeoDef; pFieldsEdit.AddField(pFld); return pFields; } #endregion #region 依据名称获取图层 //依据名称获取图层 public ILayer GetLayerByName(IScene scene , string strLayerName) { ILayer pLayer = null; for (int i = 0;i < scene.LayerCount;i++) { pLayer = scene.get_Layer(i); if (strLayerName == pLayer.Name) { break; } } return pLayer; } #endregion
Contour功能说明参考帮助文档。

版权声明:本文博主原创文章,博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/bhlsheji/p/4758350.html

你可能感兴趣的文章
C# 窗体拖动事件
查看>>
json数据传输有感
查看>>
关于设置anroid系统时间
查看>>
php 伪静态 (url rewrite mod_rewrite 重写) 本地APACHE支持url
查看>>
IPC----消息队列
查看>>
java8学习之Predicate深入剖析与函数式编程本质
查看>>
RxJava事件流变换者--操作符
查看>>
Unity 异步编程
查看>>
【Netty】codec框架
查看>>
js闭包(for循环内给元素添加事件)
查看>>
Wine 1.5.28 发布
查看>>
hdu3555 Bomb(数位dp)
查看>>
C#知识点有必要知会
查看>>
常用的正则表达式
查看>>
HIVE的安装和使用
查看>>
CentOS使用Ubuntu的start-stop-daemon来启动守护进程
查看>>
FreeMarker-简单示例
查看>>
Working Plan 优先队列+贪心
查看>>
session和cookie
查看>>
二维数组排序 array_multisor
查看>>