ARCEngine+3D
文章平均质量分 64
稻草人007007
分享亦是一种乐趣
展开
-
终于打通了在AE中从Multipatch建立到带纹理保存到GDB这一流程
通常(几乎所有的博文)是构造一个3D容器—— IGraphicsContainer3D来接收我们在sceneControl中生成的Multipatch,如果不能保存下来则显得太不优雅,所以得考虑新建一个图层保存所生成的MP。不可行的几条弯路:弯路①:保存到IFeatureLayer中。MP是必须要有Z值的,而IFeatureLayer不能接受带Z值的Geometry(这两句是提示的原创 2017-08-01 17:15:22 · 1276 阅读 · 1 评论 -
最近转ARCGIS 三维二次开发了,开启新的分享与交流
如题,做一个低调务实的码农,如图:原创 2017-07-25 21:03:42 · 1744 阅读 · 4 评论 -
编辑TIN时设置参数为esriTinSurfaceType.esriTinHardReplace导致边缘不整齐的问题
既然是用多边形替换地形中的一块区域,当然不想过多的改变地形,所以边缘不整齐是不能接受的。出现这种情况的原因在于面要素没有转换成包含PolygonZ。步骤:①用InterpolateShape工具将二维面转成三维面;②执行编辑TIN时选择shape作为高程字段(默认即可)。对比一下:原创 2017-08-12 11:44:03 · 482 阅读 · 0 评论 -
ArcEngine 设置要素图层的基准高(Base Height),使其紧贴地形TIN
通常将正射影像叠加在地形表面作为纹理渲染,矢量要素图层同样可以叠加在地形表面:设置基准高前:设置基准高后:核心代码:private void 设置基准高ToolStripMenuItem_Click(object sender, EventArgs e) { for (int lyrIndex = 0; lyrIndex原创 2017-08-13 23:35:58 · 2131 阅读 · 0 评论 -
采用ISegment进行点转线(或点转面)时容易出现的错误
问题描述,有一系列点,想构成面,而面由ring构成,ring由Segment构成,所以先由点构成Segment。由于点变量比较多,不想再定义相同多的 tempLine变量,仅仅是把它清空了又在构成下一个线段时利用,结果出现之前的pSegment变量的值被改变: ILine tempLine = new LineClass();原创 2017-09-07 00:05:35 · 968 阅读 · 0 评论 -
ArcEngine点集构三维面
由于普通图层的featureClass不允许要素具有Z值,所以新建的三维面需要保存到mdb或gdb中。步骤:1 在Arccatalog中建立一个mdb和一个空要素类testPolygon,注意勾选Z值,设置好投影。步骤2:打开这个空要素类,插入点集转成的三维面://加载数据 IWorkspaceFactory pWorkspaceFactory=null;原创 2017-09-26 00:51:45 · 620 阅读 · 0 评论 -
ArcEngine点集构面
关键: ① 点要按顺序添加;②必须补充起点,作为终点 IPoint p1 = new PointClass(); //第一组 IPoint p2 = new PointClass(); //第一组 p1.X = 502225.693493928; p1.Y = 401985.666916852;原创 2017-09-09 12:14:23 · 1104 阅读 · 0 评论