高程选项

尝试一下在线预览

这个例子展示了如何为 3D 可视化改变一个  FeatureLayer  的仰角信息。通过修改 FeatureLayer 的 elevationInfo 属性,可以使用各种选项来定制 3D 场景中要素的仰角。

四个属性允许您自定义每个要素的高度: modeoffsetfeatureExpressionInfounit

高程模式设置高程放置的类型。 这些是 mode 可以采用的值:

elevation-info-modes

  • on-the-ground: 气球图形覆盖在地形表面上。 在这种模式下,offset, featureExpressionInfo 和  unit  无效,并且丢弃 z 值。

    On the ground

  • relative-to-ground: 气球图形放置在相对于地形表面的高程处。 如果图形有 z 值,将保留它们。 如果已定义,则使用  featureExpressionInfo  代替 z 值。 在下面的屏幕截图中,图形具有 z 值,但我们将 featureExpressionInfo  中的 expression 设置为 0 。

    Relative to the ground

  • relative-to-scene: 气球图形放置在相对于建筑物的高度。 如果存在,则将几何的 z 值添加到高程中。 如果定义了 featureExpressionInfo ,则使用表达式的结果而不是几何的 z 值。

    Relative to the scene

  • absolute-height: 气球图形放置在相对于基准的绝对高度。 绝对高度由每个要素的 z 值确定。 这种模式的工作方式类似于 relative-to-ground ,不同之处在于将丢弃地形高程。

图形偏移添加到所有图形的高程中。 100 的 offset 将符号在其现有高程上方移动 100 个单位(默认为米)。 将 unit 更改为公里会使图形离地 100 公里,如下图所示:

offset

(此处不考虑 z 值,因为定义了  featureExpressionInfo )

自定义高程 可以使用 featureExpressionInfo 计算,这是一个 Arcade 表达式 ,可以计算自定义高程值。一旦设置了这个属性,不再考虑 zvalues 。

例如,您可以执行以下操作以根据要素的 z 值和属性计算自定义高程:

       
1
2
3
4
5
6
7
elevationInfo: {
  mode: "relative-to-ground",
  featureExpressionInfo: {
    expression: "Geometry($feature).z * 10 + $feature.HEIGHT100"
  },
  unit: "meters"
}

这就是使用这段代码提升图形的方式:

custom-elevation

当在 expression 中使用属性时,outFields 应该在图层上定义。

高程单位 定义了 featureExpressionInfo 和 offset  的单位。 默认情况下是米。

将此示例与 点的 3D 符号 进行比较,以了解在 3D 中可视化 2D 要素的不同选择。

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.