z 值通常表示可用于以三维形式显示要素的高程或高度。要素的各折点可将 z 值与 x,y 位置信息一同存储。虽然 ArcMap 及其编辑环境是二维的,但仍可以输入、编辑和维护 z 值。
在 ArcMap 中执行编辑操作时,z 值的分配是编辑工具或命令所执行的常规功能决定:是创建新要素还是编辑现有要素。所创建的、用于生成新要素的大多数操作都会为所有折点分配相同的默认 z 值。修改现有要素时,将内插新的 z 值,并将更新后的值分配给已编辑的折点。但是,某些编辑操作只会维护现有 z 值。
可在“编辑草图属性”窗口中查看或更改要素的 z 值。z 值列在 Z 列中。要更新多个折点的 z 值,请选中位于要更新的折点左侧的复选框,然后单击 Z 按钮并输入新值。
要将 z 值存储在要素中,必须在创建要素时指定要素类具有 z 值。这样便可使要素类包含 z 值。要确定某个要素类是否包含 z 值,请在 ArcCatalog 或目录窗口中打开该要素类的属性,单击“常规”选项卡,然后在“几何属性”下查看是否已选中“坐标包括 z 值”旁的复选框。与折线 Z 一样,ArcMap 属性表的“形状”字段中也存在一个 Z。
如果现有要素类不包含 z 值,则需创建一个能够存储 z 值的新要素类,然后将现有要素类中的要素复制并粘贴到新要素类中并对 z 值进行编辑。无需 ArcGIS 3D Analyst extension 许可即可在 ArcMap 中创建包含 z 值的要素类或编辑 z 值。不过,如果您拥有 3D Analyst,还可在 ArcGlobe 或 ArcScene 中编辑要素。
以下部分介绍了在 ArcMap 中编辑要素时的行为。
ArcMap 如何为新要素分配 z 值
ArcMap 采用以下两种方式之一为新要素分配 z 值:
- 复制和粘贴具有 z 值的现有要素时,ArcMap 同样会将这些 z 值复制到新要素中。
- 通过所有其他要素创建方法,ArcMap 可将默认 z 值分配给所有折点。
复制和粘贴要素或使用“高级编辑”工具条中的“复制要素”工具时,原始要素中的现有 z 值也会被复制到新要素中。如果原始要素来自不包含 z 值的其他图层,则会为粘贴的要素分配默认 z 值。
用于创建新要素的其他操作(包括创建草图、追踪、输入测量导线、使用“创建要素拓扑错误修复”或缓冲)会为新要素中的所有折点分配 z 值常量。此常量值为“当前 Z”,默认值为 0。
例如,在 ArcMap 中创建新要素时,将自动为“当前 Z”分配 z 值。要更改现有要素的 z 值,请使用“编辑”工具双击要素,然后单击“编辑器”工具条中的“编辑草图属性”按钮 。
要为“当前 Z”指定其他值,需要将“当前 Z”文本框添加到 ArcMap 界面。单击“自定义”菜单 >“自定义模式”,在“命令”选项卡中搜索“当前 Z”,将“当前 Z”控件拖动到任一 ArcMap 工具条(如“编辑器”工具条)中,然后关闭“自定义”对话框。可根据需要为“当前 Z”输入其他数值。创建编辑草图时,可使用“当前 Z”控件为草图中的各折点分配 z 值。
编辑现有要素时 ArcMap 如何分配 z 值
编辑现有要素时,ArcMap 采用以下两种方式之一为编辑的要素分配 z 值:
- 现有 z 值保持不变,因为它们不受编辑的影响。
- 使用内插值更新 z 值。
对现有要素进行移动、旋转、缩放或空间校正时,现有 z 值将保持不变。虽然 x,y 值可能会改变,但 z 值保持不变。类似地,如果仅移动一个折点,现有 z 值同样会保持不变。如果需要修改 z 值,可在“编辑草图属性”窗口中执行此操作。
另一方面,用于添加、修改或删除现有要素中的实际折点的操作通常会为已修改的折点分配新的 z 值。由于这些操作会修改具有已知 z 值的几何,因此 ArcMap 会有一个良好的内插(或外插)起点,并且会在逻辑上更新 z 值。对现有要素执行的分割、延伸、修剪、平滑处理、概化、合并、联合、裁剪及相交操作可内插 z 值。
例如,对具有 z 值的线进行修剪时,将使用该线段中其他折点的 z 值为位于该线修剪点处的折点内插 z 值。如果起始折点的 z 值为 10,结束折点的 z 值为 20,则会在位于起点的 60% 处修剪该线时,为修剪点处的折点分配值 16。
使用联合和相交等功能时(执行这些功能时,输入可来自不同图层),如果所有输入都包含 z 值,则输入将具有内插值。如果输入图层缺少 z 值,将使用“当前 Z”。
执行可操作多个折点的编辑任务时,只为受影响的折点重新分配 z 值。大多数情况下,都通过内插法分配 z 值。但是,使用草图编辑现有要素的“修整要素”、“剪切面”和“自动完成面”会将草图的 z 值应用于插入的折点。
z 值分配的示例
下例介绍了正在执行的常见编辑操作以及操作完成后所生成的 z 值。
请注意,假定“当前 Z”值为 0(默认情况下)。要为“当前 Z”指定其他值,请将其输入到“当前 Z”文本框中。
编辑方案 | z 值的分配方式 | 示例 |
---|---|---|
创建新要素 | 为折点分配“当前 Z”。 | |
复制和粘贴要素 | 从包含 z 值的要素类中进行复制时,现有 z 值会被复制到新要素中。如果复制的要素不包含 z 值,则为粘贴的要素分配“当前 Z”值。 | |
移动要素 | 现有 z 值被保留,并且不会发生任何变化。 | |
旋转要素 | 现有 z 值被保留,并且不会发生任何变化。 | |
移动折点 | 现有 z 值被保留,并且不会发生任何变化。 | |
插入折点 | 为新折点分配内插 z 值。 | |
延伸线 | 为新折点分配内插(外插)z 值。 | |
修剪线 | 为新折点分配内插 z 值。 | |
分割线 | 为新折点分配内插 z 值。对于分割点处的折点,每个要素都具有相同的 z 值。 | |
修整要素 | 为通过修整草图插入的折点分配草图的 z 值。其他折点的 z 值将被保留,并且不会发生任何变化。 | |
剪切面 | 系统将为沿着剪切操作的新折点分配草图的 z 值。现有折点的 z 值将被保留,并且不会发生任何变化。 | |
自动完成面 | 新面的 Z 值分配:向新面的折点分配草图的 z 值。现有面的 z 值分配:为保持现有面和新面之间的边界,ArcMap 在与新面相交的现有面上插入折点。仅根据现有多边形的 z 值内插这些折点的 z 值。现有多边形的其他折点的 z 值将被保留,并且不会发生任何变化。 |