你好,
是否有一种方法,以编程方式添加一个高程表面到地图在ArcGis Pro?既然我们这么做了…还添加一个高程源到新的高程表面?我知道如何查询高程表面并列出可用的表面,但我没有找到添加新高程表面的方法。
提前感谢!
基督教
解决了!进入解决方案。
更新地图的ElevationSources需要更新MapDefinition。基本方法是:
克雷格
你好克雷格,
非常感谢您的回复。你的解决办法似乎有效如果你不介意的话,你能检查一下我的代码,看看是否没问题吗?我用它来添加一个新的高程表面,它的源是一个TIN。
私人任务CreateNewElevationSurface(ArcGIS.桌面.映射.地图地图,字符串surfaceName){返回ArcGIS.桌面.框架.线程.任务.QueuedTask.运行(()=>{vardataConnection=新ArcGIS.核心.CIM.CIMStandardDataConnection();dataConnection.WorkspaceConnectionString=字符串.格式(“数据库={0}”,系统.IO.路径.GetDirectoryName(ArcGIS.桌面.核心.项目.当前的.DefaultGeodatabasePath));dataConnection.WorkspaceFactory=ArcGIS.核心.CIM.WorkspaceFactory.锡;dataConnection.数据集=“锡”;dataConnection.DatasetType=ArcGIS.核心.CIM.esriDatasetType.esriDTTin;varnewElevationSource=新ArcGIS.核心.CIM.CIMElevationSource();newElevationSource.VerticalUnit=ArcGIS.核心.几何.LinearUnit.米;newElevationSource.DataConnection=dataConnection;varnewElevationSurface=新ArcGIS.核心.CIM.CIMMapElevationSurface();newElevationSurface.名字=surfaceName;newElevationSurface.BaseSources=新ArcGIS.核心.CIM.CIMElevationSource[1]{newElevationSource};var定义=地图.GetDefinition();intnumElevationSurfaces=定义.ElevationSurfaces.长度;varnewElevationSurfaces=新ArcGIS.核心.CIM.CIMMapElevationSurface[numElevationSurfaces+1];数组.复制(定义.ElevationSurfaces,0,newElevationSurfaces,0,numElevationSurfaces);newElevationSurfaces[numElevationSurfaces]=newElevationSurface;定义.ElevationSurfaces=newElevationSurfaces;地图.SetDefinition(定义);});}
再次感谢并致以最良好的问候
基督教