3D 是 ArcGIS Pro 不可或缺的一部分。 任何 2D 地图都可以转换为 3D 场景以供数据可视化、探索或分析。 在 ArcGIS Pro 中,3D 地图被称为场景。 可在全球或局部模式下查看所有场景。 在全球模式下,地球被绘制成球体,您的视点通常是涵盖数千公里的数据。 在局部模式下,地球以视角方式绘制,您的视点通常是涵盖数万千米的数据。
概览
- 视频长度:4:57
- 此视频是使用 ArcGIS Pro 2.9 创建的。
在本教程中,您需要将 2D 地图转换为 3D 场景,并使用其 3D 查看属性。
- 预计时间:30 分钟
- 软件要求:ArcGIS Pro
打开工程
您的研究区域为新西兰惠灵顿 Kelburn 郊区。 完成导入 ArcMap 文档教程后,您将熟悉起始地图。
- 启动 ArcGIS Pro 并根据需要进行登录。
- 在起始页的最近工程下方,单击打开其他工程。
注:
如果已打开一个工程,请单击功能区上的工程选项卡。 在左侧的菜单项列表中,单击打开。 在打开页面上单击门户,然后单击页面底部的打开其他工程。
- 在打开工程对话框的门户 下,单击 ArcGIS Online 。
注:
如果您看到列出的是 ArcGIS Enterprise ,则必须添加门户连接或将活动门户设置为 ArcGIS Online。 或者,您可以从浏览器下载教程数据。
- 在对话框顶部的搜索框中,输入 Convert a map to a scene tutorial,然后按 Enter 键。
- 在搜索结果列表中,单击将地图转换为场景以选择工程包。
注:
如果该名称下不只有一个工程包,请查看所有者列。 选择所有者名称为 ArcGISProTutorials 的项目。 如果未得到任何结果,请参阅未返回任何搜索结果。
- 单击确定。
此工程将打开 Kelburn 郊区的地图视图。 表示步行路径、车行道路和区域划分的图层显示在深灰色的底图之上。
从地图创建场景
在 ArcGIS Pro 中,3D 地图被称为场景。 可在全球或局部模式下查看所有场景。 在全球模式下,地球被绘制成球体,您的视点通常是涵盖数千公里的数据。 该视图是大型研究区域的最佳之选。 在局部模式下,地球以视角方式绘制,您的视点通常是涵盖数万千米的数据。 对于小研究区域,此视图是最佳之选。
在此工程中,您感兴趣的区域非常小。 您需要将地图转换为局部场景。
- 单击功能区上的视图选项卡。 在窗口组中,单击重置窗格 ,然后单击重置窗格以进行映射。
此操作可确保内容和目录窗格打开,其他窗格关闭。
- 在视图选项卡上的视图组中,单击转换 。 在下拉列表中,单击转全球场景 。
地图将转换为名为 Kelburn_3D 的场景。 局部场景图标 将显示在场景的视图选项卡上。
注:
要将任何场景作为全球场景或局部场景进行查看,可在视图选项卡上的视图组中单击全球 或局部 。
局部场景支持投影坐标系。 全球场景不支持投影坐标系。 它们使用 WGS 1984 地理坐标系。
在内容窗格中,地图图层已复制到场景中。 窗格底部为高程表面类别,其中包含名为 WorldElevation3D/Terrain3D 的地面图层。 (展开地面标题可看见该图层。)此图层用于提供 2D 地图图层的高程值,以便在 3D 空间中绘制。
WorldElevation3D/Terrain3D 是一个世界高程表面。 该表面是由具有不同分辨率或详细信息的多个高程地图组成的复合表面。 在新西兰,分辨率约为 31 米,这意味着每 961 平方米的区域对应一个高程值(31 平方米)。
要查看世界任意部分的 WorldElevation3D/Terrain3D 分辨率和数据源,请打开高程覆盖范围地图。
从当前视角看,该场景的外观没有极强的 3D 效果,但是您需要花点时间从其他视角进行探索。
- 单击功能区上的地图选项卡。 在导航组中,确保已选择浏览工具 。
- 可以使用鼠标按钮和滚轮来放大、平移、倾斜和旋转场景。 (可选)使用位于场景左下角的屏幕导航器 。
- 在地图选项卡的图层组中,单击底图 。 在底图列表中,单击 Streets。
接下来,您需要更改高程表面的一些属性。
- 在内容窗格的高程表面下,单击地面。
高程表面上下文选项卡集将显示在功能区中。
- 在高程表面下,单击外观选项卡。
- 在绘制组的垂直夸大中,键入 1.25,然后按 Enter 键。
垂直夸大是一种视觉效果,用于增强场景的 3D 外观。
- 在表面组中,选中相对于光照位置创建阴影复选框。
此选项会根据场景的当前照明设置向地形添加阴影。 但是,默认情况下,太阳高度角为 90 度(头顶正上方),因此没有任何阴影。 您需要更改照明设置(场景属性),而不是高程表面。
- 在内容窗格中,右键单击场景名称 Kelburn_3D,然后单击属性 。
- 在地图属性对话框中,单击照明选项卡。
- 在照明定义方式下,将高度角更改为 60,然后按 Enter 键。
- 单击确定。
- 从更多视角查看场景。
- 在内容窗格中,取消选中 WorldElevation3D/Terrain3D 复选框。
场景将重新绘制,并且地图图层为平面。 必须打开高程表面图层才能应用其高程值。
- 选中 WorldElevation3D/Terrain3D 复选框以重新打开图层。
- 在快速访问工具栏中,单击保存 保存工程。
向场景添加图层
您将向场景中添加两个新图层并对其进行符号化。 其中一个图层代表 Kelburn 郊区的建筑物。 该图层具有可用来拉伸建筑物的属性 - 即对其在地面以上的相应高度处进行绘制。 另一图层代表惠灵顿郊区的边界。 这些图层的数据集存储在工程地理数据库中。
- 在目录窗格的工程选项卡中,展开数据库。 展开 convert_a_map_to_a_scene.gdb。
- 单击建筑物要素类以将其选中。 按住 Ctrl 键并单击 Suburb_Boundaries 要素类以将其同时选中。
- 右键单击选定要素类,然后单击添加到当前地图 。
将图层添加至带有默认符号系统的场景。 Suburb_Boundaries 图层具有实心填充颜色。 您需要将符号设置为空心填充并选择其他轮廓颜色。
- 在内容窗格中,单击 Suburb_Boundaries 图层的符号。
符号系统窗格将出现并显示面符号格式化选项。
- 在窗格顶部,单击属性选项卡。 确保已在其下选中符号选项卡 。
- 在外观下,单击颜色下拉箭头,然后单击无颜色。
- 单击轮廓颜色下拉箭头,然后单击马臀革褐。
- 将轮廓宽度更改为 1.5 磅,然后按 Enter 键。
- 在窗格的底部,单击应用。
您现在可以看到 Kelburn 和其他惠灵顿郊区的边界。
- 在内容窗格中,单击建筑物图层的符号。
您需要选择专为建筑物设计的符号。
- 在符号系统窗格的顶部,单击图库选项卡。
- 在搜索框中输入 building,然后按 Enter 键。
- 在 ArcGIS 2D 样式的符号列表中,单击米黄色 Building Footprint 符号。
将在内容窗格和场景中更新此符号。 但建筑物仍平铺在表面上。 您将使用图层属性表中的高度值对其进行拉伸。
- 在内容窗格中,右键单击建筑物图层,然后单击属性表 。
Approximate Height 字段可存储每个建筑物在地面以上的高度(以米为单位)。
注:
该表还有一个名为 Base Elevation 的字段,用于存储每个要素的高程值(z 值)。 但是,该图层当前不使用此信息来定位 3D 空间中的要素。 与场景中的其他图层一样,Buildings 图层使用 WorldElevation3D/Terrain3D 高程表面中的值。
- 关闭表。 在内容窗格中,确保已选中 Buildings 图层。
- 在功能区的要素图层下,单击外观选项卡。
- 在拉伸组中,单击类型 ,然后单击最大高度 。
- 单击类型 旁的字段下拉箭头,然后单击近似高度。
现在,每个建筑物都根据其在表中的近似高度值进行拉伸。 拉伸单位设置为米(这是正确的)。
注:
您已将拉伸应用于要素的最大高度(“最大高度”)。 要理解这是什么意思,请设想一个由 4 个折点定义且位于斜坡上的方形建筑物要素。 要素的最大高度是斜坡上最高点处的折点的高程。 其最小高度是斜坡上最低点处的折点的高程。 所有四个折点将拉伸到相同的高度,以使建筑物屋顶为平面。 因此,按其最大高度拉伸的要素略高于按其最小高度拉伸的要素(除非建筑物位于平坡上)。 有关拉伸的详细信息,请参阅将要素拉伸成 3D 符号系统。
在内容窗格中,Buildings 图层已从 2D 图层类别移至 3D 图层类别,因为拉伸为图层的 3D 属性。
- 在快速访问工具栏上,单击保存 。
在下一节中,您将向场景添加其他高程表面,以便为 Kelburn 郊区提供更详细的高程值。
向场景添加其他高程表面
高程表面为栅格或 TIN 数据集(或根据栅格数据集创建的 web 高程图层),用于存储连续地理区域的高程值。 表面的分辨率(即其包含的高程细节量)可高可低。 覆盖面积大的表面分辨率通常比覆盖面积小的表面分辨率低(细节量更少)。 WorldElevation3D/Terrain3D 是一个分辨率相当低的表面。
可将多个图层添加到高程表面。 例如,高分辨率图层可以为较小的感兴趣区域提供高程值,而低分辨率图层可以为周围区域提供高程值。
在本节中,您需要添加第二个地面高程图层。 该图层覆盖 Kelburn 郊区范围,分辨率为 1 米。 地图图层将使用高分辨率图层中的可用高程值。
在大多数场景中,高程表面表示地面:地球表面的地形。 但是,如果您拥有适当的数据集,则表面可以表示其他地形,例如洞穴底面或湖床。 有关自定义高程表面的详细信息,请参阅高程表面。
- 在内容窗格的高程表面下,右键点击地面,然后单击添加高程源 。
- 在添加高程源对话框上,浏览至工程 > 数据库 > convert_a_map_to_a_scene.gdb。 单击 Elevation_Kelburn 将其选中。
- 单击确定。
在内容窗格中,Elevation_Kelburn 图层将添加到 WorldElevation3D/Terrain3D 图层的上方。 如果地图图层与高程图层同延,则其将使用 Elevation_Kelburn 中的高程值;如果地图图层延伸到 Elevation_Kelburn 之外,则其将使用 WorldElevation3D/Terrain3D 中的高程值。 (在此场景中,除 Suburb_Boundaries 之外的所有地图图层将与 Elevation_Kelburn 完全同延。)
注:
将按照高程图层在内容窗格中的列出顺序使用它们。 因此,应将高分辨率图层放在低分辨率图层上方。 可在高程表面类别中上下拖动高程图层。
- 在快速访问工具栏上,单击保存 。
更改图层的高程源
如果地图图层将 z 值存储为其几何的一部分,则该图层为 3D 图层。 可通过属性表的 Shape 字段识别 3D 图层:值末尾会有一个 Z,例如 PointZ、PolylineZ 或 PolygonZ。 默认情况下,3D 图层使用其自己的 z 值在 3D 空间中进行绘制。
如果图层未将 z 值存储为其几何的一部分,则该图层为 2D 图层。 2D 图层使用场景高程表面的值在 3D 空间中进行绘制。
Buildings 图层是一个 2D 图层。 但是,它与场景中的其他 2D 图层不同,因为它确实存储了高程值,未存储为其几何的一部分,而是存储在其他字段中。 在本部分中,您需要将 Buildings 图层的高程源更改为此属性字段,而不是使用高程表面值。
- 在内容窗格中,右键单击建筑物图层,然后单击属性表 。
Shape 字段中的值为 Polygon,而非 PolygonZ。 由此确认该图层为 2D 图层。 但是,每个要素的高程都存储在 Base Elevation 字段中。 (该图层将在内容窗格的 3D 图层下列出,因为其要素将被拉伸。)
- 关闭属性表。
- 在内容窗格中,右键单击 Buildings 图层,然后单击属性 。
- 在图层属性对话框中,单击高程选项卡。
要素设置为显示在地面上 - 换句话说,设置为使用场景的地面高程表面的值。 这是所有 2D 地图图层的默认设置。
- 单击要素为下拉箭头,然后单击在绝对高度 。
现在,可使用除场景高程表面以外的源(在此情况中为字段)中的高程值。
- 在使用的其他要素高程下,单击 <表达式> 下拉箭头,然后单击基础高程。
- 将垂直夸大设置为 1.25。
您已将此垂直夸大设置应用于高程表面,因此还必须将其应用于图层的新高程源。 否则,与场景中的其他图层相比,建筑物看起来会过低。
注:
对于 3D 图层,默认情况下,要素位于绝对高度,而要素高程是从几何 z 值获得的。
- 确保高程单位设置为米。 单击确定。
- 导航场景,然后从不同的视角进行查看。 放大以近距离查看。
在多个位置,建筑物部分陷入地形中。 当在场景中使用多个高程表面时,会发生这种情况。 Buildings 图层中的 Base Elevation 值和 Elevation_Kelburn 表面中的值可能以不同方式捕获或处理;无论如何,它们都不完全匹配。 Buildings 图层中的值可能更精确,但同时需要此图层与场景中的其他图层对齐。 因此,您可能要将建筑物的高程源重新设置为地面。
- 在快速访问工具栏上,单击保存 。
除了将地图转换为场景外,您还可以从 ArcScene 和 ArcGlobe 导入现有的 3D 文档。ArcScene 文档以局部场景的形式打开,而 ArcGlobe 文档以全球场景的形式打开。 由于 ArcGIS Pro 和 ArcScene 具有不同的 3D 环境,您可能需要使用所导入 ArcScene 文档的地图和图层属性来以您想要的方式进行显示。 在某些情况下,使用相同的数据在 ArcGIS Pro 中创建新场景更为容易。 导入的 ArcGlobe 文档通常在 ArcGIS Pro 中显示良好,改动较小或没有改动。