以编程方式添加高程表面

1183
3.
跳到解决方案
09-26-2017 06:56
RehmSoftware
通过
新贡献者III

你好,

是否有一种方法,以编程方式添加一个高程表面到地图在ArcGis Pro?既然我们这么做了…还添加一个高程源到新的高程表面?我知道如何查询高程表面并列出可用的表面,但我没有找到添加新高程表面的方法。

提前感谢!: slightly_smiling_face:

基督教

标签(2)
0荣誉
1解决方案

接受的解决方案
CraigWilliams
通过 Esri贡献者
Esri贡献者

更新地图的ElevationSources需要更新MapDefinition。基本方法是:

  • 调用GetDefinition(获取CIMMap定义)
  • 通过ElevationSources数组来更新现有源或添加新源。对于数据源路径,您需要一个CIMDataConnection。
  • 调用setdefinition将更改推回到映射中。

克雷格

在原帖子中查看解决方案

3回复
CraigWilliams
通过 Esri贡献者
Esri贡献者

更新地图的ElevationSources需要更新MapDefinition。基本方法是:

  • 调用GetDefinition(获取CIMMap定义)
  • 通过ElevationSources数组来更新现有源或添加新源。对于数据源路径,您需要一个CIMDataConnection。
  • 调用setdefinition将更改推回到映射中。

克雷格

RehmSoftware
通过
新贡献者III

你好克雷格,

非常感谢您的回复。你的解决办法似乎有效: slightly_smiling_face:如果你不介意的话,你能检查一下我的代码,看看是否没问题吗?我用它来添加一个新的高程表面,它的源是一个TIN。

私人任务CreateNewElevationSurfaceArcGIS桌面映射地图地图字符串surfaceName{返回ArcGIS桌面框架线程任务QueuedTask运行=>{vardataConnection=ArcGIS核心CIMCIMStandardDataConnectiondataConnectionWorkspaceConnectionString=字符串格式“数据库={0}”系统IO路径GetDirectoryNameArcGIS桌面核心项目当前的DefaultGeodatabasePathdataConnectionWorkspaceFactory=ArcGIS核心CIMWorkspaceFactorydataConnection数据集=“锡”dataConnectionDatasetType=ArcGIS核心CIMesriDatasetTypeesriDTTinvarnewElevationSource=ArcGIS核心CIMCIMElevationSourcenewElevationSourceVerticalUnit=ArcGIS核心几何LinearUnitnewElevationSourceDataConnection=dataConnectionvarnewElevationSurface=ArcGIS核心CIMCIMMapElevationSurfacenewElevationSurface名字=surfaceNamenewElevationSurfaceBaseSources=ArcGIS核心CIMCIMElevationSource1{newElevationSource}var定义=地图GetDefinitionintnumElevationSurfaces=定义ElevationSurfaces长度varnewElevationSurfaces=ArcGIS核心CIMCIMMapElevationSurfacenumElevationSurfaces+1数组复制定义ElevationSurfaces0newElevationSurfaces0numElevationSurfacesnewElevationSurfacesnumElevationSurfaces=newElevationSurface定义ElevationSurfaces=newElevationSurfaces地图SetDefinition定义}}

再次感谢并致以最良好的问候

基督教

0荣誉
CraigWilliams
通过 Esri贡献者
Esri贡献者

显然我还没有运行它,但读一遍似乎是对的。

0荣誉