什么是 3D 面要素?
面要素是一个 GIS 对象,其地理制图表达(用于封闭区域的一系列 x 和 y 坐标对)作为其属性(或字段)之一存储在数据库的行中。面要素有两个可能在 3D 模式下用于建模的单独部分:它们的外部周长线和内部区域。几乎所有实例中,只有在外部周长 需要包括 z 值或高度方可在 3D 空间中正确定位其自身时,才应将面建模为 3D 要素。
如果需要对面中内部区域 的 3D 碰撞进行建模,则只能使用多面体要素或功能面(如 TIN)方可满足绝大多数使用情况。这是因为只有正好存在三个折点(构造 3D 三角形)时或折点表示平面时,才能确保以一致的方式计算 3D 面的表面。由于 3D 面满足这些要求所需要的劳动强度很高,因此,不建议将它们作为维持 3D 区域面的工作流。
3D 面要素存储 z 坐标的方式是将 z 坐标嵌入到其要素类的几何或 Shape 字段中。这意味着,为 3D 面创建的每个新折点都会自动包含 z 值,从而允许其周长将任意两点连接在一起 - 无论这些点在地面上、地面上方还是地面下方。
3D 面要素的示例通常与定义表面的区域相关。这些示例包括:
湖边界;
建筑物覆盖区;
街道路边线
尽管还可以使用数字要素属性对面 z 值建模,但此选项会显示整个面中具有相同 z 坐标的要素且可能不支持嵌入的 z 值所支持的所有相同分析和交互选项。不过,在某些情况下,可根据属性定义平面高度的平面定义实际上可能是一个合适的设计,例如在其使用拉伸合并时或者用于表示多层建筑中垂直宗地所有权时。
所有只位于高程表面的要素(如行政边界、感兴趣区域和宗地边界)始终应作为 2D 面要素进行建模。这将简化要素的数据存储和维护操作,并使得要素能够在基础表面数据改进时自动调整高度。另外,如果这些面需要 z 值,可以使用插值 Shape 等工具通过引用高程数据计算出要素的 z 值。
创建 3D 面要素类的两种方法
创建 3D 面要素类主要有两种方法:创建一个全新的面要素类或将现有的 2D 面数据转换为包含 z 值的新要素类。
z 值应该表示什么?
Z 值主要用于在 GIS 要素中包含高程。这些值可以表示绝对高度(例如飞机位于 30,000 英尺处)或相对于地面的高度(例如地铁车站位于地面以下 50 米)。对生成的 3D 要素类进行显示和分析时,两种方法均受完全支持。
值得注意的是,z 值也可用于包含其他垂直测量值,例如空气污染观测值、温度以及用于表面生成的其他测量值。创造性地应用 z 值及其表示的内容,对于理解和分析数据非常有用。
应该在要素类所在的要素数据集(如果存在)或在要素类自身(如果没有要素数据集)中定义要素类 z 值的单位和基准面。如果未定义单位,ArcGIS 将假定 Z 的单位与 XY 的单位一致。这种假设可能会带来问题,尤其当 XY 单位是地理单位(纬度/经度)时。
创建 3D 面要素
可以使用 ArcMap、ArcGlobe 和 ArcScene 中的标准 ArcGIS 编辑框架或使用可在输出中包含 z 值的工具在地理处理框架中以交互式方式创建 3D 要素。在 3D 视图中创建和编辑面时有一些需要注意的特定行为。