ElevationSurface

摘要

ElevationSurface 对象可用于访问地面表面图层或自定义表面以及其方法和属性。

说明

2D 地图或 3D 场景仅可以包含一个地面表面图层,但是可以包含零个、一个或许多自定义表面。 当您的活动门户设置为 ArcGIS Online 时,每个新的局部或全局场景均包含地面表面和 WorldElevation3D/Terrain3D 高程服务。 默认情况下,各个新地图不包含任何地面表面。 要向地图添加地面表面,您可以使用添加高程源图层对话框。 当您创建或编辑要素并希望根据基础高程表面设置 z 值时,可以将地图中的高程表面用于编辑工作流。

高程表面可以没有源(表示零表面),也可以包含一个或多个为表面提供高度值的高程源。 您可以通过 listElevationSources 方法访问高程表面中的高程源图层。

属性

属性说明数据类型
name
(可读写)

获取和设置高程表面的名称。 Ground 表面为只读状态。

String
verticalExaggeration
(可读写)

获取和设置高程表面的垂直夸大。 对于所有高程表面,默认值均为 1.0,此值仅适用于高程表面。 垂直夸大不适用于地图中的其他图层。 将此值设置为较大的数值可能会影响性能,因为场景会使用高度夸大的要素渲染。

Double

方法概述

方法说明
listElevationSources ({wildcard})

返回与 ElevationSurface 对象关联的 ElevationSource 对象的 Python 列表。

方法

listElevationSources ({wildcard})
参数说明数据类型
wildcard

A wildcard is based on the elevation surface name and is not case sensitive. A combination of asterisks (*) and characters can be used to help limit the resulting list.

(默认值为 None)

String
返回值
数据类型说明
List

返回地图中 ElevationSurface 对象的 Python 列表。

如果仅返回一个高程表面,则 listElevationSources 方法会返回一个列表对象。 使用后跟索引的适当 wildcard 参数来引用 ElevationSurface 对象。

地图中可能包含多个具有相同名称的图层。 在这种情况下,您可能需要使用其他属性来隔离特定图层。 为此,可以使用诸如 datasource 等图层属性。 最佳做法是为地图中的所有图层指定唯一名称。

代码示例

ElevationSurface 示例 1

以下脚本可为地面高程表面设置新的垂直夸大。

p = arcpy.mp.ArcGISProject('current')
m = p.listMaps('Scene')[0]
for surface in m.listElevationSurfaces():
    if surface.name == 'Ground':
        surface.verticalExaggeration = 3.0
p.save()
ElevationSurface 示例 2

以下脚本将打印各个高程表面中的高程数据源。

p = arcpy.mp.ArcGISProject('current')
m = p.listMaps('Scene')[0]
for surface in m.listElevationSurfaces():
    for source in surface.listElevationSources():
        print(source.dataSource)